轻松掌握Spring依赖注入:打造你的登录验证系统

简介: 本文以轻松活泼的风格,带领读者走进Spring框架中的依赖注入和登录验证的世界。通过详细的步骤和代码示例,我们从DAO层的创建到Service层的实现,再到Spring配置文件的编写,最后通过测试类验证功能,一步步构建了一个简单的登录验证系统。文章不仅提供了实用的技术指导,还以口语化和生动的语言,让学习变得不再枯燥。

Hey小伙伴们,大家好呀!👋🌟

今天,我要给大家带来一个超级实用又有趣的话题——依赖注入之登录验证!🔐🚀 是不是听起来就有点小激动呢?别急,跟着我一步步来,保证让你轻松掌握这个技能,还能让你的代码更加优雅哦!

🚀 开启我们的登录验证之旅

首先,我们要做的是搭建起我们的DAO层。这就像是我们的数据库操作的大门,所有的数据交互都得从这里过。我们得在项目的com.lq包下新建一个dao包,然后在里面创建一个接口UserDao.java。这个接口里,我们得添加一个login()方法,这个方法就是用来实现登录功能的。🔑

package com.lq.dao;

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

接下来,我们要给这个接口找个小伙伴,也就是它的实现类UserDaoImpl。这个类会告诉我们,如果用户名是“张三”且密码是“123”,那么登录就是成功的。😎

package com.lq.dao.impl;

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

🌟 服务层的搭建

现在,我们来到了Service层。这一层就像是我们的业务逻辑的大脑,它会调用我们的DAO层来完成具体的任务。我们在com.lq包下新建一个service包,然后创建一个接口UserService.java,里面也添加一个login()方法。

package com.lq.service;

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

然后,我们得给这个接口也找个小伙伴,也就是它的实现类UserServiceImpl。这个类会通过调用我们的UserDao来完成登录验证。

package com.lq.service.impl;

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

🛠️ 配置文件的编写

接下来,我们要编写我们的applicationContext.xml配置文件。这个文件就像是我们的指挥官,它会告诉我们的Spring框架,哪些类是我们需要的,以及它们之间的关系。

<?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>

🎉 测试一下

最后,我们要编写一个测试类TestLogin来验证我们的登录验证功能是否正常工作。这个测试类会创建一个ApplicationContext,然后通过它来获取我们的UserService,最后调用login()方法来测试登录。

package com.lq.test;

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

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("登陆失败");
        }
    }
}

运行这个测试,如果一切顺利,你将看到“登陆成功”或者“登陆失败”的输出。🎈


好啦,小伙伴们,这就是我们今天的全部内容啦!希望你们喜欢这次的分享,如果有任何问题,或者想要了解更多的技术知识,记得留言告诉我哦!我们下次再见!👋💻💖

相关文章
|
10月前
|
存储 Java 数据库
Spring Boot 注册登录系统:问题总结与优化实践
在Spring Boot开发中,注册登录模块常面临数据库设计、密码加密、权限配置及用户体验等问题。本文以便利店销售系统为例,详细解析四大类问题:数据库字段约束(如默认值缺失)、密码加密(明文存储风险)、Spring Security配置(路径权限不当)以及表单交互(数据丢失与提示不足)。通过优化数据库结构、引入BCrypt加密、完善安全配置和改进用户交互,提供了一套全面的解决方案,助力开发者构建更 robust 的系统。
344 0
|
7月前
|
存储 人工智能 自然语言处理
用Spring AI搭建本地RAG系统:让AI成为你的私人文档助手
想让AI帮你读懂PDF文档吗?本文教你用Spring AI和Ollama搭建一个本地RAG系统,让AI成为你的私人文档助手。无需GPU,无需云端API,只需几行代码,你的文档就能开口说话了!
1674 2
|
10月前
|
存储 人工智能 Java
Spring AI与DeepSeek实战四:系统API调用
在AI应用开发中,工具调用是增强大模型能力的核心技术,通过让模型与外部API或工具交互,可实现实时信息检索(如天气查询、新闻获取)、系统操作(如创建任务、发送邮件)等功能;本文结合Spring AI与大模型,演示如何通过Tool Calling实现系统API调用,同时处理多轮对话中的会话记忆。
2069 57
|
消息中间件 存储 Java
📨 Spring Boot 3 整合 MQ 构建聊天消息存储系统
本文详细介绍了如何使用Spring Boot 3结合RabbitMQ构建高效可靠的聊天消息存储系统。通过引入消息队列,实现了聊天功能与消息存储的解耦,解决了高并发场景下直接写入数据库带来的性能瓶颈问题。文章首先分析了不同MQ产品的特点及适用场景,最终选择RabbitMQ作为解决方案,因其成熟稳定、灵活路由和易于集成等优势。接着,通过Docker快速部署RabbitMQ,并完成Spring Boot项目的配置与代码实现,包括生产者发送消息、消费者接收并处理消息等功能。最后,通过异步存储机制,既保证了消息的即时性,又实现了可靠持久化。
788 0
📨 Spring Boot 3 整合 MQ 构建聊天消息存储系统
|
8月前
|
Java 调度 流计算
基于Java 17 + Spring Boot 3.2 + Flink 1.18的智慧实验室管理系统核心代码
这是一套基于Java 17、Spring Boot 3.2和Flink 1.18开发的智慧实验室管理系统核心代码。系统涵盖多协议设备接入(支持OPC UA、MQTT等12种工业协议)、实时异常检测(Flink流处理引擎实现设备状态监控)、强化学习调度(Q-Learning算法优化资源分配)、三维可视化(JavaFX与WebGL渲染实验室空间)、微服务架构(Spring Cloud构建分布式体系)及数据湖建设(Spark构建实验室数据仓库)。实际应用中,该系统显著提升了设备调度效率(响应时间从46分钟降至9秒)、设备利用率(从41%提升至89%),并大幅减少实验准备时间和维护成本。
425 0
|
11月前
|
人工智能 自然语言处理 Java
对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手
本文介绍了如何通过Model Context Protocol (MCP) 协议将传统Spring Boot服务改造为支持AI交互的智能系统。MCP作为“万能适配器”,让AI以统一方式与多种服务和数据源交互,降低开发复杂度。文章以图书管理服务为例,详细说明了引入依赖、配置MCP服务器、改造服务方法(注解方式或函数Bean方式)及接口测试的全流程。最终实现用户通过自然语言查询数据库的功能,展示了MCP在简化AI集成、提升系统易用性方面的价值。未来,“对话即服务”有望成为主流开发范式。
7899 7
|
11月前
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——处理系统异常
本文介绍了在Spring Boot项目中如何通过创建`GlobalExceptionHandler`类来全局处理系统异常。通过使用`@ControllerAdvice`注解,可以拦截项目中的各种异常,并结合`@ExceptionHandler`注解针对特定异常(如参数缺失、空指针等)进行定制化处理。文中详细展示了处理参数缺失异常和空指针异常的示例代码,并说明了通过拦截`Exception`父类实现统一异常处理的方法。虽然拦截`Exception`可一劳永逸,但为便于问题排查,建议优先处理常见异常,最后再兜底处理未知异常,确保返回给调用方的信息友好且明确。
1368 0
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——处理系统异常
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
1009 8
|
7月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1154 0