【Spring】模拟用户注册操作

本文通过实例展示了如何使用Spring容器管理Bean并实现依赖注入。定义了SysUser实体类,UserDao接口及其MySqlUserDao实现,UserService接口及UserServiceImpl实现。在Spring配置文件中声明了Bean并配置了依赖关系,使得在不修改原有代码的情况下,可以方便地切换不同的数据源,如从MySqlDao到OracleDaoImpl,实现了解耦合和灵活性的提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:模拟用户注册操作。

  • 需要定义一个dao接口(UserDao)接口中的方法 insertUser(SysUser user),定义接口的实现类 MySqlUserDao ---------(2)
    inserUser()方法里面不需要操作数据, 输出“使用了dao执行insert操作”。

  • 需要定义一个service接口(UserService),定义接口的实现类 UserServiceImpl.

  • 在service的实现类有一个 UserDao类型的属性。

  • service类中有一个方法 addUser(SysUser user).
    操作是 service类中的addUser() { userDao.insertUser() } 完成注册。

  • 定义一个实体类(domain) SysUser, 表示用户的数据。(1)

要求实现:

程序中的UserServiceImpl, MySqlUserDao这些类都有spring容器创建和管理,同时要给 UserServiceImpl类中的 userDao属性赋值。
从spring容器中获取 UserServiceImpl类型的对象, 调用addUser()方法,输出“使用了dao执行insert操作”
在这里插入图片描述

步骤:

1.定义一个实体类(domain) SysUser, 表示用户的数据。

在这里插入图片描述
SysUser.java

/**
 * @author WanZi
 * @create 2021-11-05 
 */
public class SysUser {
    private String name;
    private Integer age;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public Integer getAge() {
        return age;
    }
}
2.定义一个dao接口(UserDao)接口中的方法insertUser(SysUser user)

UserDao.java

/**
 * @author WanZi
 * @create 2021-11-05 
 */
public interface UserDao {
    void insertUser(SysUser user);
}

定义接口的实现类 MySqlUserDao
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MySqlUserDao.java
inserUser()方法里面不需要操作数据, 输出“使用了dao执行insert操作”。

/**
 * @author WanZi
 * @create 2021-11-05 
 */
public class MySqlUserDao implements UserDao {
    @Override
    public void insertUser(SysUser user) {
        System.out.println("使用了dao执行insert操作");
    }
}

3. 需要定义一个service接口(UserService),定义接口的实现类 UserServiceImpl.

在这里插入图片描述
👇

在这里插入图片描述
UserService.java
service类中有一个方法 addUser(SysUser user).

/**
 * @author WanZi
 * @create 2021-11-05 
 */
public interface UserService {
    void addUser(SysUser user);
}

定义接口的实现类 UserServiceImpl.
在这里插入图片描述
在这里插入图片描述

在service的实现类有一个 UserDao类型的属性。
service类中的addUser() { userDao.insertUser() } 完成注册。
UserServiceImpl.java

/**
 * @author WanZi
 * @create 2021-11-05 
 */
public class UserServiceImpl implements UserService {
    
    private UserDao userDao;
    //在后面截图中有set方法
    @Override
    public void addUser(SysUser user) {
        userDao.insertUser(user);
    }
}

在这里插入图片描述

4. 程序中的UserServiceImpl, MySqlUserDao这些类都有spring容器创建和管理,同时要给 UserServiceImpl类中的 userDao属性赋值。

创建spring配置文件:
在这里插入图片描述

<!--把要使用对象,使用bean声明-->
<bean id="mysqluserDao" class="com.bjpowernode.dao.impl.MySqlUserDao"/>
<bean id="userService" class="com.bjpowernode.service.impl.UserServiceImpl">
        <property name="userDao" ref="mysqluserDao"/> <!-- setUserDao(mysqluserDao)-->
</bean>

在这里插入图片描述
进行测试:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
一个负责数据库,一个负责业务逻辑.
在这里插入图片描述

Ioc实现解耦合(数据变多了,需要换一个)

在这里插入图片描述
在这里插入图片描述
OracleDaoImpl.java

/**
 * @author WanZi
 * @create 2021-11-05 
 */
public class OracleDaoImpl implements UserDao {

    @Override
    public void insertUser(SysUser user) {
        System.out.println("Oracle的insert");
    }
}

怎么用这个对象?👉打开spring配置文件:applicationContext.xml再声明一个就ok

<bean id="oracleUserDao" class="com.bjpowernode.dao.impl.OracleDaoImpl"/>
<bean id="userService" class="com.bjpowernode.service.impl.UserServiceImpl">
        <property name="userDao" ref="oracleUserDao"/> <!-- setUserDao(oracleUserDao)-->
</bean>

在这里插入图片描述
在这里插入图片描述
spring配置文件中维护对象的赋值,减少原代码的修改.
在这里插入图片描述
关系的管理交给容器去做.关系变得松散---灵活度越高---减少工作量

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值