本文对Spring框架在项目的实际应用和搭建项目框架中的作用和应用的介绍。
本文连接的数据库是mydb,采用的表是account,银行账户信息的数据表,如果读者对该表的结构不太清楚,可查阅该文【MyBatis】第五课 银行账户管理系统网站开发
创建项目,将所需要的jar包导入lib文件夹中
按照MVC三层架构流程图创建controller层,service层,dao层以及util层,test层,分别对应于控制层,业务逻辑层,数据访问层,工具包和测试包等等。
对应的包名分别为:
com.account.controller , com.account.service, com.account.dao,
com.account.utils, com.account.test
在com.account.utils包中创建DBUtil类,用于采用JDBC连接mysql数据库,其代码如下:
package com.spring.utils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* 连接数据库的工具类
*/
@Component(value = "db")
public class DBUtil {
@Value("com.mysql.cj.jdbc.Driver")
private String driver;//连接数据库的驱动程序
@Value("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8")
private String url;//访问数据库的地址
@Value("root")
private String username;//登录数据库的用户名
@Value("admin")
private String password;//登录数据库的密码
public Connection connection=null;
@PostConstruct
public void init(){
//加载驱动程序
try {
Class.forName(driver);
//连接数据库
connection = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在com.account.dao中创建数据访问的接口和实现类:
IAccountDao.java
package com.spring.dao;
import java.util.List;
import java.util.Map;
/**
* 数据访问层接口
*/
public interface IAccountDao {
//将数据库中多条数据查询出来
List
AccountDaoImp.java
package com.spring.dao;
import com.spring.utils.DBUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 数据访问层实现类
*/
@Repository(value = "dao" )
public class AccountDaoImp implements IAccountDao {
@Autowired
DBUtil db;
@Override
public List
在 com.account.service中创建业务逻辑层的接口和实现类:
IAccountService.java
package com.spring.service;
import java.util.List;
import java.util.Map;
/**
* 业务逻辑层接口
*/
public interface IAccountService {
List> getAll();
}
AccountServiceImp.java
package com.spring.service;
import com.spring.dao.IAccountDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 业务逻辑层接口实现类
*/
@Service(value = "service")
public class AccountServiceImp implements IAccountService {
@Autowired
IAccountDao dao;
@Override
public List> getAll() {
return dao.getAll();
}
}
在com.account.controller中创建控制层的类:
AccountController.java
package com.spring.controller;
import com.spring.service.IAccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import java.util.List;
import java.util.Map;
/**
* 控制层
*/
@Controller(value = "controller")
public class AccountController {
@Autowired
IAccountService service;
public List> All(){
return service.getAll();
}
}
在com.account.utils包中创建Spring框架的主配置文件类:
SpringUtil.java
package com.spring.utils;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.spring")
public class SpringUtil {
}
在com.account.test中创建测试类:
SpringTest.java
package com.spring.test;
import com.spring.controller.AccountController;
import com.spring.utils.SpringUtil;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class SpringTest {
@Test
public void one(){
//先加载Spring框架的主配置文件
ApplicationContext ac=new AnnotationConfigApplicationContext(SpringUtil.class);
AccountController controller = ac.getBean("controller", AccountController.class);
controller.All().forEach(map-> System.out.println(map));
}
}
本文对Spring框架的实际的运行,希望对读者学习Spring框架有一定的帮助。