Spring IoC注解开发

@Component  组件

@Controller 控制器

@Service  业务

@Repository  仓库

这四个标签是为了创建对象

其实他们四个本质都一样,只不过另外三个是Component的别名,在不同层使用容易区分

Spring IoC注解开发_第1张图片

 首先需要加入aop依赖,如果你事先加入spring-context依赖,则会关联加入aop依赖

第二步,配置xml文件,修改命名空间

 修改beans变成context

第三步,指定要扫描哪些包中的类

第四步,加入注解

Spring IoC注解开发_第2张图片

 

 getBean中传入注解的value值,如果在这四个当中不填value值,默认类名首字母变小写

Spring IoC注解开发_第3张图片

 Spring IoC注解开发_第4张图片

如果要扫描多个包,可以在配置文件用,隔开

 也可以指定一个父包

选择性实例化Bean,现在由于某种特殊业务的需要,只允许其中所有的Controller参与Bean管理

    第一种解决方案:use-default-filters="false" 使全部带有声明Bean的失效

Spring IoC注解开发_第5张图片

   第二种解决方案:排除掉,exclude-filter

负责注入的标签:

@Value

@Autowired

@Qualifier

@Resource

@Value用来注入简单类型,并且可以不提供set方法,可以放在属性上,也可以放在set方法上以及构造方法上

Spring IoC注解开发_第6张图片

 Spring IoC注解开发_第7张图片

 Spring IoC注解开发_第8张图片

 @Autowired注入非简单类型,默认byType,根据类型自动装配,不需要指定任何属性,但不能有多个实现类,不需要set方法

 Spring IoC注解开发_第9张图片

也可以出现在set方法上,构造方法上,构造方法参数上

Spring IoC注解开发_第10张图片

 Spring IoC注解开发_第11张图片

可以省略@Autowired,要求只有一个构造方法并且能和属性能对应上

 Spring IoC注解开发_第12张图片

 @Autowired和@Qualifier联合使用,可以根据名字进行装配

要注入哪个就在@Qualifier中填写哪个bean

@Resource注解也可以完成非简单类型注入,他是JDK扩展包中的,属于JDK的一部分,所以该注解是标准注解,更加具有通用性,而是@Autowired是spring框架自己的

@Resource注解默认根据名称装配byName,未指定name时,使用属性名作为name,找不到的话通过byType装配,并且只适用于属性上,setter方法上

需要引入依赖

Spring IoC注解开发_第13张图片

 Spring IoC注解开发_第14张图片

 Spring IoC注解开发_第15张图片

 

全注解编程:

定义一个类,加入@Configuration注解,表示这里类代替配置文件,@ComponentScan指定扫描的包

Spring IoC注解开发_第16张图片

 此时需要new的对象不同,为AnnotationConfigApplicationContext,并且把配置类放到参数中

 

 

你可能感兴趣的:(spring,spring,java,mybatis)