依赖注入之登录验证(Java EE 学习笔记08)

下面以属性setter方法注入为例,实现一个简单的登录验证。具体实现步骤如下所示。

(1)编写DAO层:在项目的com.lq包下新建dao包,在dao包下创建接口UserDao.java,在UserDao.java接口中添加方法login(),用于实现登录功能。

java 复制代码
package com.lq.dao;

/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-11-29
 * @Description: 接口类UserDao实现
 * @Version: 1.0
 */


public interface UserDao {

    public boolean login(String name, String pwd);
}

(2)编写DAO层的实现类:在com.lq.dao包下创建impl包,在impl包下创建UserDao接口的实现类UserDaoImpl,在UserDaoImpl类中实现login()方法。

java 复制代码
package com.lq.dao.impl;

import com.lq.dao.UserDao;

/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-11-29
 * @Description: UserDaoImpl 接口实现类
 * @Version: 1.0
 */


public class UserDaoImpl implements UserDao {
    @Override
    public boolean login(String name, String pwd) {
        if (name.equals("张三") && pwd.equals("123")){
            return true;
        }
        return false;
    }
}

(3)编写Service层:在项目的com.lq包下新建service包,在service包下创建接口UserService.java,在接口中添加方法login()。

java 复制代码
package com.lq.service;

/**
 * @Author: lzq
 * @CreateTime: 2024-11-29
 * @Description: UserService服务接口类
 * @Version: 1.0
 */

public interface UserService {
    public boolean login(String name, String pwd);
}

(4)编写Service层实现类:在com.lq.service包下创建impl包,在impl包下创建UserService接口的实现类UserServiceImpl,在UserServiceImpl类中实现login()方法。

java 复制代码
package com.lq.service.impl;

import com.lq.dao.UserDao;
import com.lq.service.UserService;

/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-11-29
 * @Description: UserServiceImpl实现类
 * @Version: 1.0
 */


public class UserServiceImpl implements UserService {

    UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public boolean login(String name, String pwd) {
        return userDao.login(name, pwd);
    }
}

(5)编写applicationContext-login.xml配置文件:使用<bean>元素添加创建的UserDaoImpl类和UserServiceImpl类的实例,并配置其相关属性。

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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="userDao" class="com.lq.dao.impl.UserDaoImpl"/>
    <bean id="userService" class="com.lq.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"/>
    </bean>

</beans>

(6) 编写测试类:在com.lq的测试包中新建测试类TestLogin。

java 复制代码
package com.lq.test;

import com.lq.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-11-29
 * @Description: TestLogin测试登陆验证
 * @Version: 1.0
 */


public class TestLogin{
    public static void main(String[] args) {

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-login.xml");
        UserService userService = (UserService) applicationContext.getBean("userService");
        boolean flag = userService.login("admin", "123");
        if (flag){
            System.out.println("登陆成功");
        }else {
            System.out.println("登陆失败");
        }
        }
}

运行结果如下:

相关推荐
Highcharts.js5 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
头发还在的女程序员7 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考
java·开发语言·陪诊系统·陪诊app·医院陪诊陪护
CodeStats7 小时前
【Spring事务】Spring事务注解 @Transactional 完整体系:从 MySQL 隔离级别到 MyBatis 原理详解
java·spring·mybatis·事务·transactional
我命由我123458 小时前
Android 开发问题:为 PDFView 设置一个带有黑色边框的背景 drawable,但边框没有生效
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
爱写代码的小朋友9 小时前
从零开始学 Win32 API:C++ 窗口编程实战(VS Code + MinGW-w64 命令行详解)
开发语言·c++
果汁华9 小时前
Function Calling 与 Python 实战完整指南
开发语言·网络·python
小小晓.9 小时前
C++:语句和作用域
开发语言·c++
都叫我大帅哥10 小时前
从Python到Java:为什么企业级Agent最终会选择Java?
java·ai编程
wanderist.10 小时前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法
海天鹰11 小时前
PHP上传文件
android·开发语言·php