概述
SSM三层配置分别为:Spring,SpringMVC,Mybaits。
今天呢,把SSM三层框架整合到eclipse里面来,具体我会把配置和依赖都写进来。
呃呃呃,创建MAVEN项目就不用我说了吧,哈哈。
我呢,把所需要的类放在创建的分层里,首先,先来说一下MAVEN配置的依赖文件吧,pom.xml需用到的。
<properties>
<webVersion>3.1</webVersion>
<springframework.version>4.3.20.RELEASE</springframework.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp.jstl</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<!-- scope表示项目在什么时间段起作用 test表示在测试时运行 compile 编译范围(默认) runtime 运行时范围 provided
表明该依赖已经提供,故只在未提供时才被使用 system 被依赖项不会从maven仓库下载,而是从本地系统指定路径下寻找 -->
<!-- <scope>test</scope> -->
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils-bean-collections</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!--MD5加密解密 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<!-- 微信支付SDK -->
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
<!-- 测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
这是我需要用到的,你们看着使用吧,还可以去网上查找你们需要的版本或者依赖。
建立MAVEN项目后会是类似于下面图片的。
java里面放分层的
、
resources里面放置配置xml等文件。
先说完配置文件吧。
applicationContext如下:
springMVC如下:
spring-Mybaits如下:
C3P0的配置如下:
#jdbc基本信息
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/book?useUnicode=true&useSSL=false&characterEncoding=UTF-8&allowMultiQueries=true
c3p0.user=root
c3p0.password=root
#c3p0最基本配置参数为:acquireIncrement、initialPoolSize、maxPoolSize、maxIdleTime、minPoolSize
#配置参照文档:https://www.mchange.com/projects/c3p0/#basic_pool_configuration
#c3p0连接池信息
c3p0.minPoolSize=3
c3p0.maxPoolSize=25
#当连接池中的连接耗尽的时候c3p0一次同时获取的连接数
c3p0.acquireIncrement=3
c3p0.initialPoolSize=7
#定义在从数据库获取新连接失败后重复尝试的次数
c3p0.acquireRetryAttempts=60
#两次连接中间隔时间,单位毫秒
c3p0.acquireRetryDelay=1000
#连接关闭时默认将所有未提交的操作回滚
c3p0.autoCommitOnClose=false
#当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒
c3p0.checkoutTimeout=3000
#每120秒检查所有连接池中的空闲连接。Default: 0
c3p0.idleConnectionTestPeriod=120
#最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
c3p0.maxIdleTime=60
#如果设为true那么在取得连接的同时将校验连接的有效性。Default: false
c3p0.testConnectionOnCheckin=true
#JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个connection而不是整个连接池。
#所以设置这个参数需要考虑到多方面的因素。如果maxStatements与 maxStatementsPerConnection均为0,则缓存被关闭。默认值为 0
c3p0.maxStatements=300
#定义连接池内单个连接所拥有的最大缓存statements数
c3p0.maxStatementsPerConnection=30
log4j的配置如下:
#定义LOG输出级别:
#ALL输出所有日志,如果换成DEBUG表示输出DEBUG以上级别日志
#log4j.rootLogger的第一个参数DEBUG定义所有日志的级别,第二个以后是定义的引用变量
log4j.rootLogger=DEBUG, stdout, logfile
#定义stdout引用的日志输出目的地为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#指定控制台日志输出格式由PatternLayout类进行处理
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#指定日志输出时的具体格式
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
#定义logfile引用的日志输出为每日滚动生成的文件,由DailyRollingFileAppender类进行处理,文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
#指定日志文件的输出目录和文件名
log4j.appender.logfile.File=D://log/bookstore.log
#定义日志文件的大小
#log4j.appender.logfile.MaxFileSize=512KB
#定义日志文件生成的数量
#log4j.appender.logfile.MaxBackupIndex=3
#定义日志文件的输出级别
log4j.appender.File.Threshold = DEBUG
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.com.bs.mall=DEBUG
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
配置就是这么多,可以根据你们的需求来代入需要的配置。
注意:记得改配置里数据库的地址和自己的用户和密码,我的是本地的,没开的话是连接不上的。
然后分层的是pojo实体类,service是业务逻辑层,dao是数据访问层,controller是请求处理层,而mapper层则是映射。
注意:如果不懂@注解是什么意思的话,可以看看我前面的文章有解释。
从pojo实体类开始吧,我先创建的是一个种类的类,封装起来。
public class Category {
private String bookCategory;
public String getBookCategory() {
return bookCategory;
}
public void setBookCategory(String bookCategory) {
this.bookCategory = bookCategory;
}
public Category(String bookCategory) {
super();
this.bookCategory = bookCategory;
}
public Category() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Category [bookCategory=" + bookCategory + "]";
}
}
加入他的get,set和tostring方法。
然后,在mapper写分类的方法。
public interface AllContentMapper {
// 查询所有的分类
List<Category> selectClassifyById();
}
接着去mapper.xml映射所需要的sql语句。
注意:这里的resultType可以直接映射到实体类,而parameterType是需要加上resultMap的配置的,我这里是为了方便直接映射到实体类。
接下来是dao接口层的配置:
public interface AllContentDao {
// 查询所有的分类
List<Category> referClassifyByBookId();
}
然后是dao层实现接口的配置:
@Repository
public class AllContentDaoImpl implements AllContentDao {
@Autowired
private AllContentMapper acm;
// 查询所有的分类
@Override
public List<Category> referClassifyByBookId() {
return acm.selectClassifyById();
}
然后是service层的接口:
public interface AllContentService {
// 查询所有的分类
List<Category> selectClassifyById();
}
实现service接口的类:
@Service
public class AllContentServiceImpl implements AllContentService {
@Autowired
private AllContentDao acd;
// 查询所有的分类
@Override
public List<Category> selectClassifyById() {
return acd.referClassifyByBookId();
}
}
最后,是测试一下是否能够成功运行,在controller层里:
@RestController
public class AllContentController {
@Autowired
private AllContentService acs;
// 查询所有的分类
@GetMapping("selectBook")
public List<Category> findSelectBookCategory(){
return acs.selectClassifyById();
}
}
由于我的数据库只有三个类,全都出来了。
最后
以上就是机灵手机为你收集整理的用eclipse整合SSM框架详解的全部内容,希望文章能够帮你解决用eclipse整合SSM框架详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复