【Spring】模拟用户注册操作

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

  • 需要定义一个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配置文件中维护对象的赋值,减少原代码的修改.
在这里插入图片描述
关系的管理交给容器去做.关系变得松散---灵活度越高---减少工作量

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring Boot的计时器是通过使用Spring Framework提供的StopWatch来实现的。StopWatch是一个用于测量代码块执行时间的工具。它可以用来统计每个任务的执行时间并输出任务的详细信息。 要使用Spring Boot计时器,你可以按照以下步骤进行操作: 1. 首先,需要在你的代码引入Spring Framework的依赖。 2. 创建一个StopWatch对象,可以给它一个名称,比如"用户注册"。 3. 使用start方法开始计时,并为每个任务设置一个名称,比如"保存用户信息"和"创建用户钱包信息"。 4. 在每个任务执行完毕后使用stop方法停止计时。 5. 使用prettyPrint方法输出所有任务的信息,包括任务名称和执行时间。 例如,下面的代码演示了如何使用Spring Boot的计时器: ```java import org.springframework.util.StopWatch; public class TimerExample { public static void main(String[] args) throws InterruptedException { StopWatch stopWatch = new StopWatch("用户注册"); stopWatch.start("保存用户信息"); // 执行保存用户信息的业务逻辑 Thread.sleep(1000); // 模拟耗时1秒 stopWatch.stop(); stopWatch.start("创建用户钱包信息"); // 执行创建用户钱包信息的业务逻辑 Thread.sleep(2000); // 模拟耗时2秒 stopWatch.stop(); System.out.println(stopWatch.prettyPrint()); System.out.println("所有任务总耗时(毫秒):" + stopWatch.getTotalTimeMillis()); System.out.println("任务总数:" + stopWatch.getTaskCount()); System.out.println("所有任务详情:" + stopWatch.getTaskInfo()); } } ``` 通过以上步骤,你可以在Spring Boot使用计时器来测量代码块的执行时间,并输出任务的详细信息。这个功能可以帮助你更好地了解代码的性能和优化的方向。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Spring的秒表StopWatch优雅的程序计时器 -第455篇](https://blog.csdn.net/linxingliang/article/details/128374534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [一些在线系统的计时操作的实现(spring-boot计时器使用,时间戳比较先后)](https://blog.csdn.net/TateBrwonJava/article/details/80902584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值