Spring概述
Spring是一个容器。Spring的主要功能就是为代码解耦,降低代码的耦合度。根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。主业务逻辑代码逻辑间联系紧密,有具体的专业业务应用场景,复用性较低;系统级业务代码相对功能独立,主要为业务提供功能性服务,如日志,安全,事物等。Spring根据代码的功能性特点,将降低耦合度的方式分为了两类:IOC和AOP。IOC使得主业务在相互
·
Spring是一个容器。
Spring的主要功能就是为代码解耦,降低代码的耦合度。
根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。
主业务逻辑代码逻辑间联系紧密,有具体的专业业务应用场景,复用性较低;系统级业务代码相对功能独立,主要为业务提供功能性服务,如日志,安全,事物等。
Spring根据代码的功能性特点,将降低耦合度的方式分为了两类:IOC和AOP。IOC使得主业务在相互调用的过程中,即不用再自己创建要使用的对象了。而是由Spring容器统一管理,自动注入。AOP使得系统级服务得到了最大程度的复用,且不用再有程序员手工将系统服务混杂到主业务逻辑中了,而是由Spring统一完成织入。
问题一:ApplicationContext与Beanfactory容器的区别
这两个容器对于其中bean的创建时机不同。
1.ApplicationContext容器在进行初始化的时候,会将其中所有的Bean(对象)进行创建。
缺点:占用系统资源(内存cpu等),优点:响应速度快
2.Beanfactory容器中的对象,在容器初始化的时候,并不会被创建,而是在真正获取该对象时才被创建。
缺点:相对来说,响应速度慢。优点:不多占用系统资源。
Bean的默认装配方式
代码通过getbean()的方式从容器中获取指定的bean实例,容器会首先调用bean的无参构造器,
只要给出了带参构造器,你一定要给他无参构造器
Spring的动态工厂bean
factory-bean指定相应工厂bean,factory-method指定创建所用方法。此时配置文件中至少有两个bean,一个是工厂类的bean,一个是工厂要创建的目标类的bean
。
Spring的静态工厂bean
静态工厂无需创建工厂实例,不需要定义静态工厂,只需要指定所用工厂类。
容器中Bean的作用域
通过容器中的Scope属性,为Bean指定特定的作用域。
1.singleton:单态模式。整个Spring容器中,使用singleton定义的bean是单例的。
2.prototype:原型模式,bean实例是在代码中使用该bean才进行装配。
3.request:对于每一个Http请求,都将会产生一个不同的bean实例
4.session:对于每一个HttpSession请求,都会产生一个不同的bean实例。
5.global session:每个全局的HttpSession对应一个bean实例。
Bean后处理器
bean后处理器是一种特殊的bean,容器中的所有bean在初始化的时候,俊辉自动执行该类的两个方法,该bean是由其他bean自动调用执行。
在bean后处理类方法中,只要对Bean类中的方法进行判断,就可以实现对指定的bean的指定方法进行扩展与增强,方法返回的bean对象,就是增强过的对象。
bean初始化完毕的标志:一个方法被执行。
bean的生命周期
bean的id与name属性
这两个没区别,一般情况下,命名bean使用id属性,当bean中含有一些特殊字符的时候,就可以使用name属性了。
更多推荐
已为社区贡献5条内容
所有评论(0)