DI(依赖注入)功能使用注解annotation实现
spring的控制反转:由spring创建对象,控制权的转移,DI(依赖注入)是最明显的特征。
**MVC模式常用的注解**:
<!--
加载配置文件之后,扫描com.zhiyou100下的所有子包,当在包中扫描到类带有注解,那么管理该类
@Repository 用在MVC中的Dao层
@Service 用在MVC中的服务层
@Controller 控制,不能使用Component替换
@Component 如果该类不好划分范围,但是需要交给spring管理。可以替换Repository和Service
这些注解应使用在功能类的头部
注解的使用:Annotation
使用位置
1、属性中 限定属性的类型和作用等
2、方法上 对方法进行限定
3、用在类上 对类进行限定,声明类的作用
使用时间:
1、源代码 2、编译期 3、运行时
-->
1、在spring.xml中配置
<!--
扫面这个包,或者子包下的类。
如果扫描到头部有注解@Component,将此类初始化
初始化时默认调用无参的构造方法,并且对象名默认是类名首字母小写
-->
<context:component-scan base-package="com.aaa" />
2、在功能类的头部加上注解
这里UserServiceImpl中有一个属性userDaoImpl还没有赋值
(1)首先找到相应的类,头部加上@Repository,实例化一个对象
(2)在对应的set方法头部加上@AutoWired,在bean集合中找合适的对象赋值
i.首先按照byName
ii.byName如果找不到,按照byType
有两种方式可以选择,一个是加到set方法的头部,
一个是加到属性的头部,推荐加到属性的头部,一般项目开发中属性,只在本类中使用
(3)@Resource作为了解,一般使用@AutoWired3、测试
4、使用@Scope设置单例模式还是原型模式
5、使用@PostConstruct,@PreDestroy来了解生命周期的问题
最后,到底是用xml还是使用注解annotation?
a、注解开发相对简单,但它只能写在java源文件上。
b、使用相对复杂,适用于任何情况
c、如果对象所在的类是在jar文件中,只能使用xml配置引用。如果是自己定义的类,使用xml或者annotation自己随意
d、开发中spring,一般注解和xml结合起来使用,视情况而定。