Spring中拥有两大重点,一为AOP(Aspect Oriented Programming)面向切面编程,另一个则是IOC控制反转。
通常实现这两大重点的实现都有两种方法,一是使用xml配置文件来进行配置,但是使用xml文件进行配置的方法过于繁琐和显得臃肿,于是就有了更为简便的方法,就是使用注解进行配置。下面就来说说几个常用的注解。
前提:开启注解扫描
<context:component-scan base-package="com.ljy"/>
base-package:容器初始化时会扫描该路径下的注解,对其进行相应操作。
一.装配bean的常用注解
@autowired()自动装配
autowired是我们使用最频繁的注解之一,作用是可以对注解下的属性进行自动注入,这种注入是按类型进行查找的,也就是说autowired会查找相同类型的属性进行注入。
autowired也可以和qualifier进行搭配,此时就会根据名称来进行注入了。
autowired修饰的范围是:属性,构造方法,set方法
@Autowired
@Qualifier("yy")//按名字为属性注入值
@Resource
与autowired类似,但是是默认通过名称来进行查找注入bean的。
修饰范围:构造方法,属性,set方法
与autowired的不同点:
1.autowried是Spring的注解,而Resource则是javax.annotation的注解
2.autowired默认按照类型进行注入,而Resource默认按照名称进行注入
二.组件类注解
1.@Component,@Service,@Controller,@Repository
这四个注解属于同一类型,同一用法的注解,不同的是他们用来区别组件的类型。
作用:把一个普通的类交给spring容器管理,就是配置文件中的
<bean id="" class=""/>
当一个类带有这些注解且在容器初始化加载时被扫描到时,就会把这些类作为bean初始化加载到容器中。
他们四个对应的组件类型:
@Component:所有组件都可以使用,对另外三个注解进行了标注,可以代替另外三个组件。
@Service:标记这个类属于业务逻辑组件。
@Controller:标记这个类属于控制层的组件。
@Repository:标记这个类是持久层的组件(Dao层)。