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);
}
}