Spring 注解的详解
前提必须是有content 的命名空间:
1:修饰一个类,将类交给Spring管理,IOC
@Component("userDao")
还注解有3个衍生注解
普通属性
3:Bean的其他注解
当类初始化/销毁的时候调用的方法:
前提必须是有content 的命名空间:
1:修饰一个类,将类交给Spring管理,IOC
@Component("userDao")
还注解有3个衍生注解
1.1 @Controller :web
1.2 @Service :service
1.3 @Repository :Dao层
2:修饰一个属性,set方法的形式注入属性的值
普通属性
@Value("刘波")
对象属性
@Autowired:区别于XML注入,通过ref="id"来注入,这个是通过类型来注入。
@Qualifier("name"):将强制按照name的属性来进行对象属性的注入。但必须和@Autowired一起使用
@Resource:按照名称完成对象属性的植入
@Component("userDao")
public class UserDaoImpl implements UserDao {
@Value("刘波")
private String name;
@Override
public void save() {
System.out.println("userDao方法执行了"+" name : "+name);
}
}
public class UserServiceImpl implements UserService {
@Value("123456")
private int number;
@Resource(name="userDao")name不可省略
private UserDao userDao;
@Override
public void find() {
System.out.println("find方法执行了...."+" number :"+number);
userDao.save();
}
}
3:Bean的其他注解
当类初始化/销毁的时候调用的方法:
<bean name="userService" class="com.liubo.spring.demo2.UserServiceImpl" init-method="begin" destroy-method="end"></bean>
@PostConstruct:初始化方法注释
@PreDestroy:销毁方法注释
@Service("userService")
public class UserServiceImpl implements UserService {
// 定义了一个初始化方法
@PostConstruct
public void begin() {
System.out.println("Service被初始化了.....");
}
@Override
public void save() {
System.out.println("Service的save()方法执行了.....");
}
@PreDestroy
public void end() {
System.out.println("Service被销毁了");
}
}
4:Bean的作用范围的注解
@Scope :作用范围
singleton:默认单列
prototype:多列
request:
session:
globalsession:
@Service("userService")
@Scope("prototype")
public class UserServiceImpl implements UserService {..}