1. 用于创建实例化的IOC注解
注解 | 说明 |
---|---|
@Component | 使用在类上,用于实例化bean |
@Controller | 使用在web层上实例化bean |
@Service | 使用在service层实例化bean |
@Respository | 使用在Dao层实例化bean |
注意: 使用注解的时候,需要在applicationContext.xml核心配置文件里面,配置组件扫描
<context:component-scan base-package="xxx.xxx.xxx"></context:component-scan>
代码:
1) 使用@Component或@Repository标识UserDaoImpl需要Spring进行实例化。
//@Component("userDao")
@Repository("userDao")
public class UserDaoImpl implements UserDao {
@Override
public void save() {
System.out.println("save running... ...");
}
}
2) 使用@Component或@Service标识UserServiceImpl需要Spring进行实例化
//@Component("userService")
@Service("userService")
public class UserServiceImpl implements UserService {
@Override
public void save() {
System.out.println("save running... ...");
}
}
2.DI 注入数据的注解
注解 | 说明 |
---|---|
@Value | 注入普通属性值 |
@Autowired | 自动按照类型注入。当使用注解注入属性时,set 方法可以省略。它只能注入其他 bean 类型。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到就报错 |
@Qualifier | 结合@Autowired一起使用用于根据名称进行依赖注入 |
@Resource | 相当于@Autowired和@Qualifier结合 |
代码:
1) 使用value对普通字符串进行注入
public class Account implements Serializable {
@Value("1001")
private Integer id;
@Value("张三")
private String name;
@Value("1000.0")
private double money;
}
2)使用@Autowired或者@Autowired+@Qulifier或者@Resource进行userDao的注入
@Service(value = "accountService")
public class AccountServiceImpl implements AccountService {
//@Autowired
//@Qualifier("accountDao")
//@Resource
@Resource(name = "accountDao")
private AccountDao accountDao;
}
3,与生命周期有关的注解
注解 | 说明 |
---|---|
@PostConstruct | 使用在方法上标注该方法是Bean的初始化方法 |
@PreDestroy | 使用在方法上标注该方法是Bean的销毁方法 |
代码:
@PostConstruct
public void init(){
System.out.println("初始化方法....");
}
@PreDestroy
public void destroy(){
System.out.println("销毁方法.....");
}