是什么
Sping 是一个以IOC和AOP为核心的,然后一个轻量级的开源框架,它为显示层和业务层等提供了很多应用技术,而且整合了很多的第三方类库,逐渐成为使用最多的Java EE企业应用开源框架。
优势
很多的优势更大大增加了Spring的使用,灵活、动态的设计,也让越来越多的人喜欢上Spring.
- 方便解耦,开发方便;
- AOP编程的支持
- 声明式事务的支持
- 方便程序的测试
- 便于集成各种框架
注解
传统的Spring模式是用XML配置文件进行配置的,这样存在的问题是如果配置文件比较多,然后就会导致XML体积比较庞大,而且灵活性不高。后来引入注解,这样提高了代码的灵活性,很大程度上解耦。下面来介绍一些常用注解的使用。
分类
一、创建对象型
相当于xml文件中的<bean id="" class="">
1.@Component
把资源让Spring 进行管理,相当于XML中配置一个bean。然后我们设定value属性是bean中的id,然后如果不指定value属性,然后默认bean中的id为当前类名,且是首字母小写。
2.@Controller:作用于表现层
关于@Colltroller与RestColler的区别,可以看推荐链接添加链接描述(https://www.cnblogs.com/shuaifing/p/8119664.html)
**3.@Service:**作用于业务层
4.@Repository:作用于持久层
注:对于2、3、4中,他们是提供了更加明确的语义化,如果注解中有且只有一个属性要赋值时,且名称是 value, value 在赋值是可以不写。
二、注入数据型
相当于<property name="" ref=""> <property name="" value="">
1.@AutoWired
自动按照类型注入。(1)只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功;(2)如果ioc容器中没有任务bean类型和要注入的变量类型匹配,则报错。(3)如果容器中有多个类型匹配时,则先去选择
2. @Qualifier
在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用,必须和@Autowried同时。但是在给方法参数注入时可以
3.@Resource
直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型;
4.@Value
注入基本数据类型和 String 类型数据的
三、作用范围型
相当于:<bean id="" class="" scope="">
1.@Scope
&emsp;指定了作用范围;比如在xml中配置的singleton(单例)、prototype(多例).
四、 生命周期型
相当于:<bean id="" class="" init-method="" destroy-method="" />
注解与XML的比较
注解
配置简单,维护方便
XML
修改时,不用改源码。不涉及重新编译和部署。