##Spring
spring框架是由于软件开发的复杂性而创建的,Spring使用的是基本的javaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分java应用可以从Spring中收益
- 目的:解决企业应用开发的复杂性
- 功能:使用基本的javaBean代替EJB,并提供了更多的企业应用功能
- 范围:任何java应用
spring是一个轻量级控制反转IOC和面向切面AOP的容器框架
###优点
- spring是一个开源的免费的框架
- spring是一个轻量级的、非入侵式的框架
- 控制反转IOC,面向切面编程AOP
- 支持事务的处理,对框架整合的支持!
弊端:
发展太久之后,配置十分繁琐。
####spring注解
@Autowired
直接在属性上使用即可!也可以在set方法上使用
@Nullable
可以让属性为空
@Autowird(required = false)
如果显示定义了Autowired的required=false,说明这个对象可以为null,否则不允许为空
@Qualifier(value="xxx")
一个接口有多个实现类,@Qualifier指明@Autowired具体注入哪个实现类
@Resource//java提供的注释
先通过名字找,再通过类型找
@Resource 和@Autowired的区别:
-
@Autowired 通过先byType后byName的方式实现
-
@Resource默认通过byname的方式实现,如果找不到名字,则通过byType实现!如果两个都找不到的情况下,就报错!
@Component //组件
@Component等价于
@Value("")
相当于@Configuration
类似于
@Bean
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。