注解介绍
- 1、代码中特殊的标记,使用注解可以完成功能
- 2、注解写法 @注解名称(属性名称=属性值)
- 3、注解可以用于类、方法、属性上
Spring的Bean管理(注解方式)
Spring注解开发准备:
1、导入jar包
- 1)导入基本jar包
- 2)导入aop的jar包
2、创建类、方法
public class User {
public void add(){
System.out.println("add()..........");
}
}
public class UserService {
private UserDao userDao;
public void add(){
System.out.println("service add()........");
}
}
3、创建applicationContext.xml配置文件,引入约束
- 1)aop基本功能,引入约束beans
- 2)spring的ioc注解开发,引入相关约束(XXX/spring-context.xsd)
4、开启注解扫描
applicationContext.xml配置文件:
<!--
开启注解扫描
到包中扫描类、方法、属性上是否有注解
-->
<context:component-scan base-package="demo.spring.annotation"></context:component-scan>
<!--
扫描属性上的注解(不常用)
-->
<context:annotation-config></context:annotation-config>
注解创建对象:
1、在创建对象的类上面使用注解实现
@Component(value = "user") //相当于 <bean id="user" class="User全路径"/>
public class User {
public void add(){
System.out.println("add()..........");
}
}
2、创建对象有四个注解
官方文档中:
Spring中提供@Component的三个衍生注解:(功能目前来讲是一致的)
- @Controller web层
- @Service 业务层
- @Repository 持久层
这三个注解是为了让标注类本身的用途清晰,Spring在后续版本会对其增强
- 1)@component
- 2)@Controller
- 3)@Service
- 4)@Repository
目前四个注解功能都是创建对象
3、创建对象是单实例还是多实例
@Component(value = "user") //相当于 <bean id="user" class="User全路径"/>
@Scope(value = "prototype") //默认是单实例
public class User {
public void add(){
System.out.println("add()..........");
}
}
注解注入属性:
创建service类,创建dao类,在service得到dao对象
注入属性第一个注解 @Autowired
Dao类:
@Component(value = "userDao")
public class UserDao {
public void add(){
System.out.println("dao add()......");
}
}
Service类:
@Component(value = "userService")
public class UserService {
//得到dao对象
//1、定义dao类型属性
//在dao属性上面使用注解,完成对象注入
@Autowired
private UserDao userDao;
//使用注解方式不需要set方法
public void add(){
System.out.println("service add()........");
}
}
注入属性第二个注解 @Resource
// name 属性值写注解创建dao对象value值
@Resource(name = "userDao")
private UserDao userDao;
常用掌握:
创建对象用XML配置文件方式,注入属性用注解方式
注:
本文是我学习笔记总结,不足之处,还望指正。