我是靠谱客的博主 机灵手机,最近开发中收集的这篇文章主要介绍用eclipse整合SSM框架详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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框架详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部