Spring模拟用户注册操作
Posted 王六六的IT日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
@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配置文件中维护对象的赋值,减少原代码的修改.
关系的管理交给容器去做.关系变得松散---灵活度越高---减少工作量
以上是关于Spring模拟用户注册操作的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程