目录
一、什么是注解
- 注解是特殊的标记形式。如JavaWeb项目中的@WebServlet("***"),@WebFilter("***")
- 注解的格式一般为:@+注解名称("注释内容")
- 注解可以作用在类、方法、属性上
- 传统的xml方式开发spring太过繁琐,注解的作用就是简化,甚至替代xml的开发方式。
二、纯注解开发
1、四种注解创建bean的方式
注解实例化主要是简化xml里面bean标签实例化方式。例如如果bean标签格式是:<bean id = "userDao" class="com.example.dao.impl.UserDaoImpl" >
那么对应注解格式就是@Component(“UserDao”),value值就是bean标签的id属性,如果不写value值,默认将类名的首个字母变为小写,当作value值
- @Component:创建对象最简单的注解
- @Service:主要用在业务逻辑层创建对象的注解
- @Controller:主要用在web层对象注解
- @Repository:主要用在Dao层对象注解
这四种注解方式都是平级的,并不是Service注解的内容其它层次就无法使用,分了三个层次注解主要是方便我们判断这个实例化是属于哪个层次,如果不知道这个对象属于什么层次,那就用Component注解表示就好
例如:
2、属性注入
通常使用@Autowired的方式进行属性注入
为什么要用到属性注入?因为如果在一个类中,创建了某一个类的对象,如果不进行注入,将无法在该类中使用
3、配置总类
目前我们只是将类配置好了,还未将这些类配置入spring容器中,所以我们要配置一个总类,专门来将这些类加入spring容器中去
- @Configuration:用于指定配置类,可以替代以前的xml文件,告诉容器有这个注释的配置类,创建容器时都会在该类上面加载
- @ComponentScan:这个注解就是替代我们前面介绍的包扫描的那个标签,只需要在初始配置类加上这个注解就可以初始化容器想要扫描的包
- @Import:用于导入其他的配置类,我们的配置类不可能就只有一个,有一个主的配置类会加载所有的配置类,xml用import标签,注解方式就用Import注解。
如:
4、编写测试类
在测试类的main方法中new AnnotationConfigApplicationContext(AppConfig.class);