Spring的常用注解:
- @Component
- @Repository
- @Service
- @Controller
- @Autowired
- @Resource
- @Qualifier
具体实例
- 创建UserDao接口和UserDaoImpl类,并用注解装配
public interface UserDao {
public void save();
}
@Repository("userDao")
public class UserDaoImpl implements UserDao {
@Override
public void save() {
System.out.println("userDao.save()");
}
}
- 创建UserService和UserServiceImpl,并用注解装配
public interface UserService {
public void save();
}
@Service("userService")
public class UserServiceImpl implements UserService {
@Resource(name = "userDao")
private UserDao userDao;
@Override
public void save() {
this.userDao.save();
System.out.println("执行userService.save()");
}
}
- 创建UserController
@Controller("userController")
public class UserController {
@Resource(name = "userService")
private UserService userService;
public void save(){
this.userService.save();
System.out.println("运行了userController.save()");
}
}
- 编写XML文件:增加了context的约束信息、进行组件扫描
<?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-4.3.xsd">
<context:component-scan base-package="com.mason.annotation"/>
</beans>
- 进行测试:
public static void main(String[] args) {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("spring.xml");
UserController userController = (UserController) applicationContext.getBean("userController");
userController.save();
}
输出为:
userDao.save()
执行userService.save()
运行了userController.save()