IOC注解
- 注解是代码的特殊标标记,格式: @注解名称(属性名称=属性值,属性名=属性值)
- 注解可以在类,属性,方法的上边
- 使用注解的目的是 : 简化XMl配置
Spring针对Bean管理中创建对象提供的注解
- 1.@Component
- 2.@Service
- 3.@Controller
- 4.@Repository
- 上面四个注解功能是一样,都可以用来创建bean实例
实际使用
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/beans/spring-context.xsd">
<context:component-scan base-package="bean1,Test"></context:component-scan>
</beans>
@Service
public class UserService {
public void addUser(){
System.out.println("添加用户");
}
}
public class Test1 {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("XML/bean1.xml");
UserService service = applicationContext.getBean("userService",UserService.class);
System.out.println(service);
service.addUser();
}
}
srevice.UserService@33b37288
添加用户
基于注解方式的属性注入(要注意xml中的扫描是否扫描到了所有注解)
@Repository
public class UserDaoIMpl implements UserDao{
@Override
public void adduser() {
System.out.println("userDao add");
}
}
@Service
public class UserService {
@Autowired
private UserDao userdao;
public void addUser(){
userdao.adduser();
System.out.println("添加用户");
}
}
- @Qualifer : 根据属性名称进行注入(必须配合@Autowired使用)
@Service
public class UserService {
@Autowired
@Qualifier(value = "userDaoIMpl")
private UserDao userdao;
public void addUser(){
userdao.adduser();
System.out.println("添加用户");
}
}
- @Resource : 可以根据类型注入,也可以根据名称注入
@Service
public class UserService {
@Resource(name = "userDaoIMpl")
private UserDao userdao;
public void addUser(){
userdao.adduser();
System.out.println("添加用户");
}
}
@Service
public class UserService {
@Resource(name = "userDaoIMpl")
private UserDao userdao;
@Value(value = "你好")
private String name;
public void addUser(){
userdao.adduser();
System.out.println(this.name);
System.out.println("添加用户");
}
}
完全注解开发
@Configurable
@ComponentScan(basePackages = {"srevice","dao"})
public class SpringConfig {
}
public class Test2 {
public static void main(String[] args) {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserService service = applicationContext.getBean("userService",UserService.class);
System.out.println(service);
service.addUser();
}
}