spring(1)简介与IOC环境搭建

1. 简介
    1.1 spring 是什么?    
    1.2 优点:
    1.3 结构体系
2. 基于XML的IOC环境搭建与入门案例
    2.1 安装依赖
    2.2 创建bean对象的三种方式
    2.3 ApplicationContext(容器接口)的三个常用实现类
    2.4 BeanFactory 与 ApplicationContext 
    2.5 bean作用域与生命周期
    2.6 依赖注入

1. 简介:

    1.1 spring 是什么?

        Spring 是Apache公司开发的一个为了简化企业级应用的开源框架。以 IOC(控制反转)和 AOP(面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方技术框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。

    1.2 优点:

        非侵入式(轻量级):基于Spring开发的应用中的对象可以不依赖于Spring的API。也就是说引入Spring框架并不会对原来的应用产生影响
        IOC解耦:一种设计思想,由IOC容器来控制对象的创建。双方互不依赖,整个过程由IOC容器来管理
        依赖注入:指依赖的对象不需要手动调用setXX方法去设置,而是通过配置赋值。
        支持AOP编程:
        容器:例如Struts2、hibernate、mybatis等框架都是可以被装入Spring的容器中。这个容器包含并且管理应用对象的生命周期。
        组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象
        一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)

    1.3 结构体系:

        核心容器:    Beans    Core    Context,SpEL

2. 基于XML的IOC环境搭建与入门案例

    2.1 安装依赖

        安装依赖,并查看依赖关系视图。

    2.2 创建bean对象的三种方式

        新建bean.xml配置文件(JavaBean:用java语言编写的可重用组件)

    2.3 ApplicationContext(容器接口)的三个常用实现类:

        ClassPathXmlApplicationContext:它可以加载类路径下的配置文件来创建IOC容器(配置文件必须在类路径下,最常用)
        FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件来创建IOC容器(必须有访问权限)
        AnnotationConfigApplicationContext:它是用于读取注解创建容器的

        在idea中右键选择 show Diagram 与 show Implementations 查看继承关系与实现类

    2.4 BeanFactory 与 ApplicationContext 

        Spring 的作者Rod Johnson设计了两个接口来创建容器。
        BeanFactory:多例对象使用(可以理解成一个HashMap,从上图可以看出其位于最顶层,功能少相对少。)
        它在构建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象。
        ApplicationContext:单例对象适用(最常用)
        它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象。

    2.5 bean作用域与生命周期:

        scope(作用域):
            singleton:单例的(默认值)
            prototype:多例的
            request:作用于web应用的请求范围(一次request一个实例)
            session:作用于web应用的会话范围(一次http session一个实例)
            global-session:作用于集群环境的会话范围(全局会话范围),当不是集群环境时,它就是session

        单例对象的生命周期:
            创建:当容器创建时对象创建
            销毁:容器销毁,对象销毁
            总结:单例对象的生命周期和容器相同

        多例对象的生命周期:
            创建:当我们使用这个对象时spring框架为我们创建
            销毁:当对象长时间不用,且没有别的对象引用时,由Java的垃圾回收器回收

    2.6 依赖注入

        第一种:使用构造函数注入(有默认的构造函数) <constructor-arg></constructor-arg>
        第二种:使用set方法注入(存在set方法) <property></property>  
        第三种:使用注解注入 @Autowired + @Qualifier("xxx") 或  @Resource(name = "XXX")

        复杂类型的注入
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容