1) IOC/DI(IOC容器)2) AOP面向切面编程3) 声明式事务官网地址:spring是一家公司-商业化运作。apache是一家基金会组织,接收社会的捐赠。https://spring.io/io表示开发者平台 1. Spring FrameworkSpring基础框架,可以视为Spring基础设施,基本上任何其他Spring项目都是以SpringFramework为基础的。Spring5,基于jdk1.8。1.1 Spring Framework的优良特性1 非侵入式:使用SpringFramework开发应用程序时,Spring对应用程序本身的结构影响非常小。对领域模型(Ja
1.获取bean在上图的测试类中我们是通过id来获取bean的。实际上获取bean的方式有很多种,下面我们就一一说明。1.1方式一:根据id获取由于id属性指定了bean的唯一标识,所以根据bean标签的id属性可以精确获取到一个组件对象。如开头中我们使用的就是这种方式。bean标签属性:id:设置bean的唯一标识class:设置bean所对应类型的全类名1.2方式二:根据类型获取用的比较多注意:当根据类型获取bean时,要求IOC容器中指定类型的bean有且只能有一个当IOC容器中一共配置了两个:会抛出异常:NoUniqueBeanDefinitionException若没有任何一个类型匹
1.获取bean在上图的测试类中我们是通过id来获取bean的。实际上获取bean的方式有很多种,下面我们就一一说明。1.1方式一:根据id获取由于id属性指定了bean的唯一标识,所以根据bean标签的id属性可以精确获取到一个组件对象。如开头中我们使用的就是这种方式。bean标签属性:id:设置bean的唯一标识class:设置bean所对应类型的全类名1.2方式二:根据类型获取用的比较多注意:当根据类型获取bean时,要求IOC容器中指定类型的bean有且只能有一个当IOC容器中一共配置了两个:会抛出异常:NoUniqueBeanDefinitionException若没有任何一个类型匹
@Configuration 同@Component,将标注的类作为一个组件,区别是会使用Cglib动态代理,因此使用该注解的类不能是final的与@Component的区别可见:Configuration和@Component的区别Cglib动态代理和JDK动态代理区别可见:Cglib动态代理和JDK动态代理的对比属性:value,一般用不到,会将该值传递给@ComponentproxyBeanMethods,是否代理@Bean方法,详见 Configuration和@Component的区别@Component将标注的类作为一个组件使用,单例属性: value,给组件起名,与@Resour
@Configuration 同@Component,将标注的类作为一个组件,区别是会使用Cglib动态代理,因此使用该注解的类不能是final的与@Component的区别可见:Configuration和@Component的区别Cglib动态代理和JDK动态代理区别可见:Cglib动态代理和JDK动态代理的对比属性:value,一般用不到,会将该值传递给@ComponentproxyBeanMethods,是否代理@Bean方法,详见 Configuration和@Component的区别@Component将标注的类作为一个组件使用,单例属性: value,给组件起名,与@Resour
bean标签的属性 1、基础属性 id:在容器中唯一 class:类全路径2、scope:对象作用范围singleton:单例默认prototype:多例request:session:globalSession:3、bean的初始方法和销毁方法标签属性init-method:初始化方法在创建对象时执行destroy-method:销毁方法在对象销毁时执行接口:publicvoidinit();publicvoiddestroy();实现类:publicvoidinit(){System.out.println("init......");}publicvoiddestroy(){Syst
bean标签的属性 1、基础属性 id:在容器中唯一 class:类全路径2、scope:对象作用范围singleton:单例默认prototype:多例request:session:globalSession:3、bean的初始方法和销毁方法标签属性init-method:初始化方法在创建对象时执行destroy-method:销毁方法在对象销毁时执行接口:publicvoidinit();publicvoiddestroy();实现类:publicvoidinit(){System.out.println("init......");}publicvoiddestroy(){Syst
认识Ioc容器和Servlet容器1.介绍loC容器loC(InversionofControl)容器,是面向对象编程中的一种设计原则,意为控制反转(也被称为'控制反向”或"控制倒置”)。它将程序中创建对象的控制权交给Spring框架来管理,以便降低计算机代码之间的耦合度。控制反转的实质是获得依赖对象的过程被反转了。这个过程由自身管理变为由loC容器主动注入。这正是loC实现的方式之一:依赖注入(dependencyinjection,DI),由loC容器在运行期间动态地将某种依赖关系注入对象之中。在传统编程方式中,要实现某种功能一般都需要几个对象相互作用。在主对象中要保存其他类型对象的引用,
认识Ioc容器和Servlet容器1.介绍loC容器loC(InversionofControl)容器,是面向对象编程中的一种设计原则,意为控制反转(也被称为'控制反向”或"控制倒置”)。它将程序中创建对象的控制权交给Spring框架来管理,以便降低计算机代码之间的耦合度。控制反转的实质是获得依赖对象的过程被反转了。这个过程由自身管理变为由loC容器主动注入。这正是loC实现的方式之一:依赖注入(dependencyinjection,DI),由loC容器在运行期间动态地将某种依赖关系注入对象之中。在传统编程方式中,要实现某种功能一般都需要几个对象相互作用。在主对象中要保存其他类型对象的引用,
Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean。工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法所返回的对象。Spring初始化bean有两种方式:实现InitializingBean接口,实现afterPropertiesSet方法。(比通过反射调用init-method指定的方法效率要高一点)配置文件中通过init-method指定,两种方式可以同时使用。(init-method方式消除了对spring的依赖)InitializingBean使用场景:通过外部对类是否是