代码结构图:
代码实现:
User.java
1 package entity; 2 3 public class User { 4 private Integer id; 5 private String name; 6 private Integer gender; 7 public Integer getId(){ 8 return id; 9 } 10 public String getName(){ 11 return name; 12 } 13 public void setId(Integer id){ 14 this.id =id; 15 } 16 public void setName(String name){ 17 this.name = name; 18 } 19 public void setGender(Integer gender){ 20 this.gender = gender; 21 } 22 public Integer getGender(){ 23 return gender; 24 } 25 }
视图层:UserVo.java
1 package vo; 2 3 import entity.User; 4 5 public class UserVo { 6 private Integer id; 7 private String name; 8 private Integer gender; 9 private String genderName; 10 public UserVo(User user) { 11 this.id = user.getId(); 12 this.name = user.getName(); 13 this.gender = user.getGender(); 14 } 15 public void setId(Integer id){ 16 this.id =id; 17 } 18 public void setName(String name){ 19 this.name =name; 20 } 21 public void setGender(Integer gender){ 22 this.gender =gender; 23 } 24 public void setGenderName(String genderName){ 25 this.genderName =genderName; 26 } 27 public Integer getId(){ 28 return id; 29 } 30 public String getName(){ 31 return name; 32 } 33 public Integer getGender(){ 34 return gender; 35 } 36 public String getGenderName(){ 37 return genderName; 38 } 39 //private String genderName; 40 41 public UserVo(){} 42 public String toString(){ 43 return "User{"+ 44 "id="+id+ 45 ",name='"+name +'\''+ 46 ",genderName="+genderName + 47 ",gender="+gender+'}'; 48 } 49 }
数据访问层:UserDao.java
1 package dao; 2 3 import entity.User; 4 5 public interface UserDao { 6 User getEntity(Integer id); 7 }
数据访问层:UserDaoImpl.java
1 package dao.impl; 2 3 import dao.UserDao; 4 import entity.User; 5 import org.springframework.stereotype.Repository; 6 7 // 改为默认bean id“userDaoImpl” 8 @Repository 9 public class UserDaoImpl implements UserDao { 10 public User getEntity(Integer id) { 11 // 此处应该从数据库查询值 方便起见直接返回一个固定对象 12 User user = new User(); 13 user.setId(1); 14 user.setName("Anne"); 15 user.setGender(0); 16 return user; 17 } 18 }
业务层:UserService.java
1 package services; 2 3 import org.springframework.context.ApplicationContext; 4 import vo.UserVo; 5 6 public interface UserService { 7 UserVo getVo(Integer id, ApplicationContext context); 8 }
业务层:UserServiceImpl.java
1 package services.impl; 2 3 import dao.UserDao; 4 import entity.User; 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Qualifier; 7 import org.springframework.context.ApplicationContext; 8 import org.springframework.stereotype.Service; 9 import services.UserService; 10 import vo.UserVo; 11 12 @Service("userService") 13 public class UserServicelmpl implements UserService { 14 // 改为自动注入并指定需要注入的实例id 15 @Autowired 16 private UserDao userDao; 17 public UserVo getVo(Integer id,ApplicationContext context) { 18 userDao = (UserDao) context.getBean("userDao"); 19 // 执行Dao层方法 20 User user = userDao.getEntity(id); 21 // 省略业务逻辑处理。。。 22 UserVo userVo = new UserVo(user); 23 userVo.setGenderName(userVo.getGender() == 0 ? "female" : "male"); 24 return userVo; 25 } 26 }
控制层:UserController.java
1 package controller; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.context.ApplicationContext; 5 import org.springframework.stereotype.Controller; 6 import services.UserService; 7 import vo.UserVo; 8 9 @Controller 10 public class UserController { 11 // 改为自动注入 12 @Autowired 13 private UserService userService; 14 15 public UserVo getVo(Integer id, ApplicationContext context) { 16 // 执行Service层方法,因为之后还需要用到context对象,故下传 17 return userService.getVo(id, context); 18 } 19 }
测试层:UserTest.java
1 import controller.UserController; 2 import org.springframework.context.ApplicationContext; 3 import org.springframework.context.support.ClassPathXmlApplicationContext; 4 import vo.UserVo; 5 6 public class UserTest { 7 public static void main(String[] args) { 8 // 读取配置文件刷新Spring容器 9 ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); 10 // 从Spring容器拿Controller 11 UserController userController = (UserController) context.getBean("userController"); 12 // 执行Controller层方法,因为之后还需要用到context对象,故下传 13 UserVo userVo = userController.getVo(1,context); 14 System.out.println(userVo); 15 } 16 }
运行结果:
1.
总结:
注解:
- @Component:用于通用组件类
- @Service:业务逻辑层
- @Controller:流程控制层
- @Repository:数据持久层上
© 著作权归作者所有
举报
相关热门文章
发表评论
0/200