Spring学习(5):DI的配置】的更多相关文章

© 版权声明:本文为博主原创文章,转载请注明出处 Bean的自动装配(Autowiring) no:不启用自动装配,此时需要手动注入.参考:Spring学习三----------注入方式 default:优先执行constructor,然后byType,最后byName byName:根据属性名自动装配.此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配 byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配:如果存在多个该类型bean,那…
DI 依赖和依赖注入 定义 传统的依赖一般指"类之间的关系",那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现:表示类对接口的实现: 依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有"拥有关系",而是一种"相识关系",只在某个特定地方(比如某个方法体内)才有关系. 聚合:属于是关联的特殊情况,体现部分-整体关系,是一种弱拥有关系:整体和部分可以有不一样的生命周期:是一种弱关…
1.命名bean 每个bean都有一个或者多个的的标识符.这些标识符必须在加载他们的容器里边唯一.一个bean经常有且只有一个标识符,但是如果需要超过一个的名字,可以考虑额外的别名. 基于xml的配置源文件,你可以使用id或者name属性去指定bean的标识符,这里有个问题,如果是名字和ID的不一致,内部又是如何处理的? 如果你不想再另外再给他们定义一个别名,你可以指定name属性,利用逗号(,),分号(;)或者空格.spring3.1以前id属性是xsd:ID类型的,这个是唯一的,3.1以后,…
正常情况下 , 基于注解的生命要优先于基于 XML 的声明. 通过 AspectJ 注解 , 切面可以与 AspectJ 兼容 , 而基于 XML 的配置则是 Spring 专有的.由于 AspectJ 得到越来越多的 AOP 框架支持 , 所以以注解风格编写的切面将会有更多的重用机会. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframew…
© 版权声明:本文为博主原创文章,转载请注明出处 @Bean -@Bean标识一个用于配置和初始化一个由SpringIOC容器管理的新对象的方法,类似于XML配置文件的<bean/> -可以在Spring的@Component注解的类中使用@Bean注解任何方法(仅仅是可以) -在上一点中,通过使用的是@Configuration 实例 1.项目结构 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0"…
© 版权声明:本文为博主原创文章,转载请注明出处 @Required -@Required注解适用于bean属性的setter方法 -这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在bean定义或通过自动装配一个明确的属性值 @Autowired -可以将@Autowired注解为“传统”的setter方法 -可用于构造器或成员变量 -默认情况下,如果因找不到合适的bean将会导致autowiring失败跑出异常,可通过@Autowired(required=false)避免 -…
© 版权声明:本文为博主原创文章,转载请注明出处 Bean的生命周期 1.定义 2.初始化 3.使用 4.销毁 初始化和销毁的三种方式 1.实现org.springframework.beans.factory.InitializingBean和org.springframework.beans.factory.DisposableBean接口 2.配置init-method和destroy-method 3.配置全局默认初始化和销毁方法default-init-method和default-d…
循环依赖 什么是循环依赖? 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方. Spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢? 先定义循环类 CircleA->CircleB->CircleC->CircleA Spring 如何解决循环依赖 一.构造器循环依赖 表示通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出BeanCurrentlyInCreationException异常表示循环依赖. 第一次接受…
[TOC] 1. 创建并声明一个切面 首先,创建一个类,添加@Component注解使其添加到IoC容器 然后,添加@Aspect注解,使其成为一个切面 最后,在配置文件里面,使用<aop:aspectj-autoproxy></aop:aspectj-autoproxy>来使其生效 2. 使用切面的通知 切面总共有6个通知类型,其中五个常用的为:前置通知.后置通知.返回通知.异常通知.环绕通知,一个不常用的为:引入通知. 而在五个常用的通知里,环绕通知功能最为强大,可以实现前四个…
© 版权声明:本文为博主原创文章,转载请注明出处 Spring Bean常用注解 @Component:通常注解,可用于任何Bean @Repository:通常用于注解DAO层,即持久层 @Service:通常用于注解Service层,即服务层 @Controller:通常用于注解Controller层,即控制层 类的自动检测及Bean的注册 <context:component-scan base-package=""/>:自动扫描base-package定义的包或其子…