Spring注解实现
配置spring.xml文件
<?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">
<!-- annotation 注解开启 -->
<context:annotation-config/>
<!-- 告知spring去哪个包,查找注解-->
<context:component-scan base-package="com.zx.spring"></context:component-scan>
</beans>
model层:
创建一个User模式
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
dao层:
在spring 中 采用 @Repository
来注解dao层实现类。
IUserDao接口
public interface IUserDao {
public void addUser(User user);
}
IUserDao的实现:
UserHiberDao
@Repository("userHiberDao")
public class UserHiberDao implements IUserDao{
@Override
public void addUser(User user) {
System.out.println("Hiber正在添加:"+user);
}
}
UserJdbcDao
@Repository("userJdbcDao")
public class UserJdbcDao implements IUserDao{
@Override
public void addUser(User user) {
System.out.println("Jdbc正在添加:"+user);
}
}
service层
service层采用 @Service
注解,上下依赖采用 @Resource
在setter方法上添加注解。
IUserService 接口
public interface IUserService {
public void addSucess(User user);
}
接口的实现
@Service("userService")
public class UserService implements IUserService{
private IUserDao userDao;
@Override
public void addSucess(User user) {
userDao.addUser(user);
}
//上下依赖的注解,当需要使用userHiberDao添加数据,将依赖注入设置为@Resource(name = "userHiberDao")
@Resource(name = "userJdbcDao")
public void setUserDao(IUserDao userDao) {
this.userDao = userDao;
}
}
Controller层
在Controller层采用 @Controller()
注解,上下依赖也采用 @Resource
在setter方法上添加注解
@Controller("userAction")
public class UserAction {
private IUserService userService;
public String save(User user){
userService.addSucess(user);
return "sucess";
}
@Resource(name = "userService")
public void setUserService(IUserService userService) {
this.userService = userService;
}
}
测试
public class SpTest {
/**
* /**
* Spring IOC(控制反转)
* 将控制管理权不由JavaBean管理,交给Spring容器管理
*
* DI 依赖注入
* --分层
* --上层依赖于下层
* --下层服务于上层
*
*
*
* Created by Administrator on 2018/1/18.
*/
@Test
public void test01(){
BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");
UserAction userAction= beanFactory.getBean("userAction", UserAction.class);
User user1 = new User();
user1.setName("大数据");
User user2 = new User();
user2.setName("人工智能");
userAction.save(user1);
userAction.save(user2);
}
}