一、基于注解方式
1、Spring针对Bean管理中创建对象提供注解
(1)@Component
(2)@Service
(3)@Controller
(4)@Repository
*上面四个注解功能是一样的,都可以用来创建bean实例
@Service
public class CatService {
public void add(){
System.out.println("你好,Cat");
}
}
<?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/context/spring-context.xsd">
<!--开启组件扫描-->
<context:component-scan base-package="com.cjc.spring"></context:component-scan>
</beans>
public class CatTest {
@Test
public void Test01(){
//加载配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
//获取配置创建对象
CatService catService = context.getBean("catService", CatService.class);
//调用方法
catService.add();
}
}
2、基于注解方式实现属性注入
(1)@Autowired:根据属性类型进行自动装配
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void add(){
System.out.println("你好,八戒");
userDao.insert();
}
}
(2)@Qualifier:根据名称进行注入
@Service
public class UserService {
@Autowired
@Qualifier(value = "userDaoImpl")
private UserDao userDao;
public void add(){
System.out.println("你好,八戒");
userDao.insert();
}
}
(3)@Resource:可以根据类型注入,可以根据名称注入
@Service
public class UserService {
@Resource
private UserDao userDao;
public void add(){
System.out.println("你好,八戒");
userDao.insert();
}
}
(4)@Value:注入普通类型属性
@Service
public class UserService {
@Value("东方不败")
private String name;
@Resource
private UserDao userDao;
public void add(){
System.out.println("你好,八戒" + name);
userDao.insert();
}
}
3、完全注解开发
@Service
public class UserService {
@Value("东方不败")
private String name;
@Resource
private UserDao userDao;
public void add(){
System.out.println("你好,八戒" + name);
userDao.insert();
}
}
public interface UserDao {
public void insert();
}
@Repository
public class UserDaoImpl implements UserDao {
@Override
public void insert() {
System.out.println("你好,师傅");
}
}
@Configuration
@ComponentScan(basePackages = {"com.cjc.spring"})
public class SpringConfig {
}
public class UserDaoTest {
@Test
public void Test02(){
//加载配置类
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
//获取配置创建对象
UserService userService = context.getBean("userService", UserService.class);
//调用方法
userService.add();
}
}