Spring5-(7)使用xml配置模拟用户注册(IOC和DI思想的运用)

(1)User类

package com.keen.domain;


public class User {
    private String name ;
    private String id;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", id=" + id + ", age=" + age + "]";
    }
    
}

IUSerDAO

package com.keen.dao;
import com.keen.domain.User;
//DAO主要做增删改查的功能
public interface IUserDAO {

     //我这里简单点,只做一个保存的操作
     void sava(User u) ;
    
}

UserDAOImp


package com.keen.daoImplement;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.keen.dao.IUserDAO;
import com.keen.domain.User;

import lombok.Cleanup;
import lombok.Setter;


public class UserDAOImpl implements IUserDAO{

    
    private DataSource datasource;
    
    
    public void setDatasource(DataSource datasource) {
        this.datasource = datasource;
    }


    public void sava(User u) {
        //连接数据库
        try {
            System.out.println("保存操作");
            @Cleanup
            Connection conn = datasource.getConnection();
            String sql = "insert into User values('lily','333',25)";
            @Cleanup
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(0, u.getName());
            ps.setString(1, u.getId());
            ps.setInt(2, u.getAge());
            ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

 }

IUserService

package com.keen.service;

import com.keen.domain.User;

public interface IUserService {
    //注册用户
    void register (User user);
    

}

IUserServiceImpl

package com.keen.service;

import com.keen.dao.IUserDAO;
import com.keen.domain.User;

public class IUserServiceImpl implements IUserService {
    private IUserDAO dao;
    
    public void setDao(IUserDAO dao) {
        this.dao = dao;
    }

    @Override
    public void register(User user) {
        System.out.println("注册操作");
        dao.sava(user);
        
        
        
    }

}

userAction类

package register.action;

import com.keen.domain.User;
import com.keen.service.IUserService;


//模拟struct2的action / spring的controller

public class UserAction {
    private IUserService service;
    
   
    public void setService(IUserService service) {
        this.service = service;
    }


    public  String execute() {
        System.out.println("注册请求");
        service.register(new User());
        return "success";
    }
    
}

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"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<!--  从classPath的路径去加载db.properties文件 -->
<context:property-placeholder location="classpath:db.properties" system-properties-mode="NEVER" />
<!-- 配置一个durid的连接池 -->

<bean id = "dataSource" class ="com.alibaba.druid.pool.DruidDataSource"
       init-method = "init" destroy-method="close">
  <property name = "driverClassName" value ="${dirverClassName}"/>
  <property name = "url" value ="${url}"/>
  <property name = "username" value ="${username}"/>
  <property name = "password" value ="${password}"/>
  <property name = "initialSize" value ="${initialSize}"/>

</bean>
<!-- 配置DAO -->
<bean id = "userDao" class = "com.keen.daoImplement.UserDAOImpl">
      <property name = "datasource" ref = "dataSource"/>
</bean>
<!--  配置service -->
<bean id = "userService" class = "com.keen.service.IUserServiceImpl">
   <property name = "dao" ref = "userDao"/>
</bean>
<!-- 配置action/controller -->
<bean id = "userAction" class = "register.action.UserAction">
    <property name = "service" ref = "userService"/>
</bean>
</beans>

AutoTest

package com.keen.daoImplement;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;

import register.action.UserAction;



@SpringJUnitConfig
public class AutoTest {

    @Autowired
    private UserAction action;
    @Test
    void test() throws Exception {
        action.execute();
    }
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容