程序员开发实例大全宝库

网站首页 > 编程文章 正文

使用maven实现SSM整合Demo(mavenssm项目搭建)

zazugpt 2024-09-03 02:59:11 编程文章 29 ℃ 0 评论

1.首先是建立一个Maven-project

2. 然后导入maven依赖,这里将我的依赖列出如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
 <modelVersion>4.0.0</modelVersion> 
 <groupId>org.bb</groupId> 
 <artifactId>ssm</artifactId> 
 <packaging>war</packaging> 
 <version>0.0.1-SNAPSHOT</version> 
 <name>ssm Maven Webapp</name> 
 <url>http://maven.apache.org</url> 
 <dependencies> 
 
 <!-- 单元测试 --> 
 <dependency> 
 <groupId>junit</groupId> 
 <artifactId>junit</artifactId> 
 <version>4.10</version> 
 <scope>test</scope> 
 </dependency> 
 
 <!-- Spring 相关依赖 --> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-context</artifactId> 
 <version>4.1.3.RELEASE</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-beans</artifactId> 
 <version>4.1.3.RELEASE</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-webmvc</artifactId> 
 <version>4.1.3.RELEASE</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-jdbc</artifactId> 
 <version>4.1.3.RELEASE</version> 
 </dependency> 
 <dependency> 
 <groupId>org.springframework</groupId> 
 <artifactId>spring-aspects</artifactId> 
 <version>4.1.3.RELEASE</version> 
 </dependency> 
 
 <!-- Mybatis 依赖 --> 
 <dependency> 
 <groupId>org.mybatis</groupId> 
 <artifactId>mybatis</artifactId> 
 <version>3.4.2</version> 
 </dependency> 
 
 <!-- mybatis整合Spring --> 
 <dependency> 
 <groupId>org.mybatis</groupId> 
 <artifactId>mybatis-spring</artifactId> 
 <version>1.3.0</version> 
 </dependency> 
 
 <!-- Mysql 依赖 --> 
 <dependency> 
 <groupId>mysql</groupId> 
 <artifactId>mysql-connector-Java</artifactId> 
 <version>5.1.6</version> 
 </dependency> 
 
 <!-- log4j日志 依赖 --> 
 <dependency> 
 <groupId>apache-log4j</groupId> 
 <artifactId>log4j</artifactId> 
 <version>1.2.15</version> 
 </dependency> 
 
 <!-- JSP相关 --> 
 <dependency> 
 <groupId>jstl</groupId> 
 <artifactId>jstl</artifactId> 
 <version>1.2</version> 
 </dependency> 
 <dependency> 
 <groupId>javax.servlet</groupId> 
 <artifactId>servlet-api</artifactId> 
 <version>2.5</version> 
 <scope>provided</scope> 
 </dependency> 
 <dependency> 
 <groupId>javax.servlet</groupId> 
 <artifactId>jsp-api</artifactId> 
 <version>2.0</version> 
 <scope>provided</scope> 
 </dependency> 
 </dependencies> 
 <build> 
 <finalName>ssm</finalName> 
 <plugins> 
 <plugin> 
 <groupId>org.mybatis.generator</groupId> 
 <artifactId>mybatis-generator-maven-plugin</artifactId> 
 <version>1.3.2</version> 
 <configuration> 
 <verbose>true</verbose> 
 <overwrite>true</overwrite> 
 </configuration> 
 </plugin> 
 </plugins> 
 </build> 
</project> 

3.然后在src/main/java下新建需要的package,如下图所示

各包的用途如下:controller-无需多说,放的是springmvc的controller文件

mode-放的实体类

service-业务层

service.impl-业务实现层

mapper-mybatis的操作数据库的接口文件,类似于dao层(这里需要注意src/main/resources下的目录,和org.bb.ssm.mapper包名一样)

4.此处我使用mybatis-generator自动生成映射类、dao、xml文件

具体做法是:现在pom.xml中引用mybatis-generator这个插件(前面我们已经引进),在src/main/resource下新建generatorConfig.xml,内容如下

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 
<generatorConfiguration> 
 
 <!-- <properties resource="init.properties"/> --> 
 
 <!-- 指定数据库连接驱动地址 --> 
 <classPathEntry 
 location="D:\Program Files\apache-maven-3.3.9\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-Java-5.1.6.jar" /> 
 <!-- 一个数据库一个 context --> 
 <context id="context1"> 
 
 <commentGenerator> 
 <!-- 是否取消注释 --> 
 <property name="suppressAllComments" value="true"></property> 
 <!-- 是否生成注释代时间戳--> 
 <property name="suppressDate" value="true"></property> 
 </commentGenerator> 
 <!-- jdbc连接配置 --> 
 <jdbcConnection 
 connectionURL="jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=UTF-8" 
 driverClass="com.mysql.jdbc.Driver" password="root" userId="root" /> 
 
 <!-- 类型转换 --> 
 <javaTypeResolver> 
 <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --> 
 <property name="forceBigDecimals" value="false"/> 
 </javaTypeResolver> 
 
 <!-- 生成实体类的地址 --> 
 <javaModelGenerator targetPackage="org.bb.ssm.model" 
 targetProject="D:\SXYC\workspace\ssm\src\main\java" /> 
 
 <!-- 生成mapper.xml文件 --> 
 <sqlMapGenerator targetPackage="org.bb.ssm.mapper" 
 targetProject="D:\SXYC\workspace\ssm\src\main\resources" /> 
 
 <!-- 生成mapxml对应的client 也就是接口dao --> 
 <javaClientGenerator targetPackage="org.bb.ssm.mapper" 
 targetProject="D:\SXYC\workspace\ssm\src\main\java" type="XMLMAPPER" /> 
 
 <table schema="ssm" tableName="userinfo" domainObjectName="UserInfo" enableCountByExample="false" 
 enableDeleteByExample="false" enableSelectByExample="false" 
 enableUpdateByExample="false"> 
 <!-- domainObjectName 指定生成的类的名字 --> 
 </table> 
 </context> 
</generatorConfiguration> 

5.鼠标右击pom.xml,run as "Maven build" 在goals中输入命令:mybatis-generator:generate,即可自动生成相应文件。

6.下面开始配置spring与mybatis的整合配置--applicationContext-mybatis.xml,直接上配置:

[html] view plain copy
<?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:p="http://www.springframework.org/schema/p" 
 xmlns:context="http://www.springframework.org/schema/context" 
 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd 
 http://www.springframework.org/schema/mvc 
 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context.xsd 
 http://www.springframework.org/schema/tx 
 http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> 
 
 <!-- Mybatis 和 Spring的整合 --> 
 <!-- 1.数据源:DriverManagerDataSource --> 
 <bean id="dataSource" 
 class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
 <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 
 <property name="url" value="jdbc:mysql://localhost:3306/ssm"></property> 
 <property name="username" value="root"></property> 
 <property name="password" value="root"></property> 
 </bean> 
 
 <!-- 2.Mybatis 的 SqlSession的工厂:SqlSessionFactoryBean dataSource引用数据源 Mybatis 
 定义数据源,同意加载配置 --> 
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
 <property name="dataSource" ref="dataSource"></property> 
 <property name="configLocation" value="classpath:mybatis-config.xml"></property> 
 </bean> 
 
 <!-- 3. Mybatis自动扫描加载Sql映射文件/接口:MapperScannerConfigurer sqlSessionFactory 
 basePackage:指定sql映射文件/接口所在的包(自动扫描) --> 
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
 <property name="basePackage" value="org.bb.ssm.mapper"></property> 
 <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> 
 </bean> 
 
 <!-- 4.事务管理:DataSourceTransactionManager dataSource 引用上面定义好的数据源 --> 
 <bean id="txManager" 
 class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
 <property name="dataSource" ref="dataSource"></property> 
 </bean> 
 
 <!-- 5.使用声明式事务: transaction-manager = "txManager" tx:advice 这种 是用 aop方式管理事物 
 annotation-driven 这种是注解方式管理事物 第一种方式,需要在spring配置文件配置一些参数 第二种方式,需要在 类里 加一些注解进行事物管理 
 用一种就行,没必须都用 --> 
 <tx:annotation-driven transaction-manager="txManager" /> 
 
</beans> 

7.配置Mybatis的配置文件,mybatis官方文档推荐起名为mybatis-config.xml,这里遵循约定:

view plain copy

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
 <!-- 配置打印 SQL 到控制台 以及懒加载 --> 
 <settings> 
 <setting name="logImpl" value="STDOUT_LOGGING" /> 
 <!-- 打开延迟加载的全局开关 --> 
 <setting name="lazyLoadingEnabled" value="true" /> 
 <setting name="aggressiveLazyLoading" value="false" /> 
 <setting name="mapUnderscoreToCamelCase" value="true" /> 
 </settings> 
 <!-- 为org.bb.ssm.mode.UserInfo 设置一个别名 UserInfo --> 
 <typeAliases> 
 <typeAlias type="org.bb.ssm.model.UserInfo" alias="UserInfo"/> 
 </typeAliases> 
 <mappers> 
 <package name="org.bb.ssm.mapper"/> 
 </mappers> 
</configuration> 

8.下来是springMVC的配置文件spring-MVC.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:p="http://www.springframework.org/schema/p" 
 xmlns:context="http://www.springframework.org/schema/context" 
 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd 
 http://www.springframework.org/schema/mvc 
 http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context.xsd 
 http://www.springframework.org/schema/tx 
 http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> 
 <!-- 开启注解 --> 
 <mvc:annotation-driven/> 
 <!-- 配置自定扫描包 --> 
 <context:component-scan base-package="org.bb.ssm.controller"/> 
 <context:component-scan base-package="org.bb.ssm.service.Impl"/> 
 
 <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 --> 
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
 <property name="prefix" value="/WEB-INF/view/"></property> 
 <property name="suffix" value=".jsp"></property> 
 </bean> 
 <!-- 处理静态资源 --> 
 <mvc:default-servlet-handler/> 
</beans> 

9.web.xml配置:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
 
 <!-- 加载Spring 容器配置 --> 
 <listener> 
 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
 </listener> 
 
 <!-- 加载spring与mybatis的整合配置 --> 
 <context-param> 
 <param-name>contextConfigLocation</param-name> 
 <param-value>classpath:applicationContext-mybatis.xml</param-value> 
 </context-param> 
 <!-- 配置 springMVC 核心控制器 --> 
 <servlet> 
 <servlet-name>springMVC</servlet-name> 
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
 <init-param> 
 <param-name>contextConfigLocation</param-name> 
 <param-value>classpath:spring-MVC.xml</param-value> 
 </init-param> 
 <load-on-startup>1</load-on-startup> 
 </servlet> 
 
 <servlet-mapping> 
 <servlet-name>springMVC</servlet-name> 
 <url-pattern>/</url-pattern> 
 </servlet-mapping> 
 
 <!-- 防止Spring内存溢出监听器 --> 
 <listener> 
 <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 
 </listener> 
 
 <!-- 解决工程编码过滤器 
 注意:请将此过滤器放在所有过滤器的前面,否则有可能出现乱码 
 --> 
 <filter> 
 <filter-name>encodingFilter</filter-name> 
 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
 <init-param> 
 <param-name>encoding</param-name> 
 <param-value>UTF-8</param-value> 
 </init-param> 
 <init-param> 
 <param-name>forceEncoding</param-name> 
 <param-value>true</param-value> 
 </init-param> 
 </filter> 
 
 <filter-mapping> 
 <filter-name>encodingFilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 
 <!-- 配置HiddenHttpMethodFilter过滤器,把 POST 请求 转换为 DELETE/PUT请求 --> 
 <filter> 
 <filter-name>HiddenHttpMethodFilter</filter-name> 
 <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> 
 </filter> 
 
 <filter-mapping> 
 <filter-name>HiddenHttpMethodFilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 
 <welcome-file-list> 
 <welcome-file>index.jsp</welcome-file> 
 </welcome-file-list> 
</web-app> 

10.log4j日志配置:

### set log levels ### 
log4j.rootLogger = info , Console , D 
#Console 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 
log4j.logger.java.sql.ResultSet=INFO 
log4j.logger.org.apache=INFO 
log4j.logger.java.sql.Connection=INFO 
log4j.logger.java.sql.Statement=INFO 
log4j.logger.java.sql.PreparedStatement=INFO 
#output2file 
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 
log4j.appender.D.File = D\:/logs/log.log 
log4j.appender.D.Append = true 
log4j.appender.D.Threshold = INFO \#\# \u00E8\u00BE\u0093\u00E5\u0087\u00BAinfo\u00E7\u00BA\u00A7\u00E5\u0088\u00AB\u00E4\u00BB\u00A5\u00E4\u00B8\u008A\u00E7\u009A\u0084\u00E6\u0097\u00A5\u00E5\u00BF\u0097 
log4j.appender.D.layout = org.apache.log4j.PatternLayout 
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n 
10.补贴上数据库的建表sql:
[html] view plain copy
CREATE DATABASE /*!32312 IF NOT EXISTS*/`ssm` /*!40100 DEFAULT CHARACTER SET utf8 */; 
 
USE `ssm`; 
 
/*Table structure for table `userinfo` */ 
 
DROP TABLE IF EXISTS `userinfo`; 
 
CREATE TABLE `userinfo` ( 
 `user_id` int(11) NOT NULL AUTO_INCREMENT, 
 `user_name` varchar(30) DEFAULT NULL, 
 `user_age` int(3) DEFAULT NULL, 
 `user_address` varchar(400) DEFAULT NULL, 
 PRIMARY KEY (`user_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

11.配置到这里已经完成,启动项目访问欢迎页面,如果看到熟悉的Hello world 代表整合成功了。

想要更多demo可以私信我,私信我:“资料”,可免费领取更多学习资料哦

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表