目录
(1)第一组(@Component,@Controllert,@Service和@Repository)
(2)第二组。(@Autowired,@Resource和@Qualifier)
(3)第三组(@Value,@Scope,@PostConstruct和@PreDestroy)
Spring的注解开发
Spring是轻代码而重配置的框架,配置比较繁琐,影响开发效率,注解开发可以简化配置文件,提高开发效率为springboot打下基础。
一,spring的原始注解
(1)第一组(@Component,@Controllert,@Service和@Repository)
主要代替<Bean>的配置(手工创建的需要实例化的类,因为要在类中添加注解)
先添加组件扫描,引入cintext的命名空间。
@Component(使用在类上用于实例化bean)
用于代替
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"></bean>
以下的都一样的替换法,明确是那一层用用哪个。
@Controller(使用在web层类上用于实例化bean)
@Service(使用在service层类上用于实例化bean)
@Repository(使用在dao层类上用于实例化bean)
(2)第二组。(@Autowired,@Resource和@Qualifier)
@Autowired(使用在在字段上用于根据类型依赖注入)
@Qualifier(结合@ Autowired一起使用用于根据id进行依赖注入)
在要注入信息的目标代码上添加注解。
@Resource(相当于上面两个的结合,按照id进行注入)
(3)第三组(@Value,@Scope,@PostConstruct和@PreDestroy)
@Value(注入普通属性,使用在要注入的数据上)
再用其他测试代码调用这个bean时就有注入值在里面
@Scope(标注bean的作用范围)
@PostConstruct(使用在方法上标注方法是bean的初始化方法)
@PreDestroy(使用在方法上标注方法是bean的销毁方法)
二,spring的新注解
用于解决原始注解不能注解的部分
1,@Configuration
在类里写这个注解,表示这个类是核心配置类
以后找spring容器就不在applicationContext.xml文件中找了,就去这个核心配置类中找。
2,@Bean
非自定义的bean的配置
先创建这个bean的对象,然后可以set配置值,再通过注解上传到spring容器中,
属于间接上传,@conponent属于直接上传。
找spring容器就不在applicationContext.xml文件中找了,就去这个核心配置类中找。
用annotation这个api。
3,@PropertySource
加载porperties配置文件(里面装的键值对用于解耦合)
代替
<context:property-placeholder location="classpath:jdbc.properties"/>
然后再@Bean的对象上传到spring容器前,先用@Value注入配置文件中的键值,再上传。这样就可以解耦合了。
为了避免耦合。
4,@ComponentScan
组件扫描的配置(用于扫描那些类上有注解信息)
代替<context:component-scan base-package="com.itheima"/>
5,@Import
引入其他配置文件 (<import>标签)
代替<import resource="applicationContext.xml"/>
@Import({1.class,2.class,3.class})
但核心配置类只能有一个。