1 前言
上一篇写了spring的事务
这一篇写一下spring的注解注入
2 本篇内容
本篇介绍了spring的注解注入中的引入、注解介绍
3 注解的引入
首先需要引入注解注入,定义扫描的包
3.1引入注解注入
Spring的配置文件写为
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
</beans>
3.2 定义扫描的包
在<beans></beans>
标签内定义<context:component-scan base-package=""></context:component-scan>
其中base-package就是要扫描的包的路径,也会扫描到它的子包。
扫描多个包时,用逗号隔开,也可单独写成不同的标签。
4 注解介绍
和参考链接3中那样按功能将注解分类
4.1 用于对象创建的注解
用于对象创建的注解有四个 @Component,@Controller,@Service,@Repository
作用相同,在Spring容器中注册,类似于<bean></bean>
标签,用value值指定bean的id,不指定value时默认为当前类名首字母小写。
用的地方不同,
@Service: service层
@Controller: web层
@Repository: dao层
@Component:任意
4.2 用于注入数据的注解
注入数据其实就是类中属性的值的注入,按属性类型来分
4.2.1 基本数据类型和String型的注入
基本数据类型和String型使用@Value注入
value用于指定数据的值,可以使用spring中的SpEL,SpEL没学过,不展开。
4.2.2 引用类型的注入
引用类型注入可以使用@Autowired或者@Resource注入,@Qualifier注解用于当一个接口中有多个实现的时候,指明具体实现类。
@Autowired注解可以用于属性、构造方法、setter方法,spring会去容器中找对于的类型,注入到该属性中,使用@Autowired注解可以不提供getter、setter方法,如果有多个实现可以配合@Qualifier指定具体的实现。
@Resource注解作用相当于@Autowired注解,只不过@Autowired按byType自动注入,@Resource默认按byName注入。
如果想要更进一步了解可以查看参考链接4
4.2.3 集合类型的注入
集合类型只能通过xml来实现
4.3 用于改变作用范围的注解
@Scope注解,与<bean scope=""></bean>
类似,用于指定bean的作用范围,用在类上
value值有singleton、prototype、request、session
4.4 与生命周期相关的注解
@PreDestory指定销毁方法,@PostConstruct指定初始化方法,用在方法上
5 结语
1.在chrome中可以使用ctrl多选,然后左键拖拽到其他地方将选中的窗口建立成新的窗口。
2.现在关于什么什么层的概念还比较模糊,以后项目实战了应该会有更清晰的理解。
3.因为是上课的时候老师一笔带过,自己课后找的资料,所以本文会更偏理论一些。
6 参考链接
1.spring-包扫描时-包名写多个
2.spring 配置扫描多个包
3.spring 使用注解注入
4.Spring-注解依赖注入
5.Spring之基于注解的注入
6.@Repository的作用?
7.关于spring中的@Service注解
8.@Service注解的使用
9.Spring的注解@Qualifier用法
10.@Scope注解的作用详解