通过Spring,模拟用户登录过程中JavaBean的定义与操作。(注解方式实现)
- ---->>用户类(User)
- ---->>用户Dao(UserDao)从数据库中获取User对象,比较用户
- ---->>用户业务逻辑(UserBiz),将比较结果返回给控制器(UserController)
- ---->>用户控制器(UserController),将用户登录的结果显示在控制台上或者返回给浏览器
需要了解:
@Component有几个衍生注解,我们在web开发中,会按照MVC三层架构分层!
-
dao 【@Repository】 数据访问层
-
service 【@Service】 业务逻辑层
-
controller 【@Controller】 控制层
这四个注解功能都是一样的,都是代表将某个类注册到spring容器中,装配Bean
具体代码如下:
实体层–>>pojo
User
@Component//采用注解方式进行配置
public class User {
@Value("1")
private int userId;
@Value("张三")
private String userName;
@Value("123")
private String userPass;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
}
数据访问层 —>>dao
UserDao接口
public interface UserDao {
public boolean selectUserByUser(User user);
}
UserDaoImpl接口实现类
@Repository
public class UserDaoImpl implements UserDao{
public boolean selectUserByUser(User user) {
if(user.getUserName().equals("张三")&&user.getUserPass().equals("123")){
return true;
}
return false;
}
}
业务逻辑层—>>biz
UserBiz接口
public interface UserBiz {
public boolean login(User user);
}
UserBizImpl接口实现类
@Service
public class UserBizImpl implements UserBiz{
//定义UserDao接口对象
@Autowired
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public boolean login(User user) {
//调用UserDao的select方法
// UserDao userDao = new UserDaoImpl();
boolean rtn=userDao.selectUserByUser(user);
return rtn;
}
}
控制层—>>controller
UserController类
@Controller
public class UserController {
@Autowired
private UserBiz userBiz;
public UserBiz getUserBiz() {
return userBiz;
}
public void setUserBiz(UserBiz userBiz) {
this.userBiz = userBiz;
}
public String userLogin(User user){
//1、获取登录结果
boolean rtn=userBiz.login(user);
//2、将登录结果显示在控制台
System.out.println(rtn);
return "true";
}
}
测试类
public class MyTest {
public static void main(String[] args) {
//1、获取容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
UserController userController = ac.getBean("userController", UserController.class);
User user = ac.getBean("user", User.class);
userController.userLogin(user);
//2、执行userController的login方法
}
}
applicationContext.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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!--开启注解扫描-->
<context:component-scan base-package="com.hua"/>
<context:annotation-config/>
</beans>