用maven对ssm进行整合
网上有很多ssm整合的教程,这里给像我这样的初学的新手提供一个整合方法,同时也记录一下自己的学习进度。
同时推荐观看相关视频 https://www.bilibili.com/video/av53621216/ 推荐老师讲的spring和springMVC这两个框架的整合贼棒!(1p—6p),spring和mabatis的话在找找资料看看,感觉我这个写的太乱了(/苦恼)
数据库相关:因为是测试整合的,所以数据库设计特别简单:
数据库名:blog;表名:user;
表中数据:
1.创建maven项目
2.初始项目结构:
3.在创建的初始目录结构中:src/main/java这个是放置java文件,而src/main/resources放置配置文件。
在pom.xml中引入jar包坐标:
1 <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/xsd/maven-4.0.0.xsd">
2 <modelVersion>4.0.0</modelVersion>
3 <groupId>com.hhxy</groupId>
4 <artifactId>blog</artifactId>
5 <version>0.0.1-SNAPSHOT</version>
6 <packaging>war</packaging>
7
8
9 <properties>
10 <spring.version>5.0.2.RELEASE</spring.version>
11 <slf4j.version>1.6.6</slf4j.version>
12 <log4j.version>1.2.12</log4j.version>
13 <mysql.version>5.1.6</mysql.version>
14 <mybatis.version>3.4.5</mybatis.version>
15 </properties>
16
17 <dependencies>
18
19 <!-- spring -->
20 <dependency>
21 <groupId>org.aspectj</groupId>
22 <artifactId>aspectjweaver</artifactId>
23 <version>1.6.8</version>
24 </dependency>
25
26 <dependency>
27 <groupId>org.springframework</groupId>
28 <artifactId>spring-aop</artifactId>
29 <version>${spring.version}</version>
30 </dependency>
31
32 <dependency>
33 <groupId>org.springframework</groupId>
34 <artifactId>spring-context</artifactId>
35 <version>${spring.version}</version>
36 </dependency>
37
38
39 <dependency>
40 <groupId>org.springframework</groupId>
41 <artifactId>spring-web</artifactId>
42 <version>${spring.version}</version>
43 </dependency>
44
45 <dependency>
46 <groupId>org.springframework</groupId>
47 <artifactId>spring-webmvc</artifactId>
48 <version>${spring.version}</version>
49 </dependency>
50
51 <dependency>
52 <groupId>org.springframework</groupId>
53 <artifactId>spring-test</artifactId>
54 <version>${spring.version}</version>
55 </dependency>
56
57 <dependency>
58 <groupId>org.springframework</groupId>
59 <artifactId>spring-tx</artifactId>
60 <version>${spring.version}</version>
61 </dependency>
62
63 <dependency>
64 <groupId>org.springframework</groupId>
65 <artifactId>spring-jdbc</artifactId>
66 <version>${spring.version}</version>
67 </dependency>
68
69 <dependency>
70 <groupId>junit</groupId>
71 <artifactId>junit</artifactId>
72 <version>4.12</version>
73 <scope>compile</scope>
74 </dependency>
75
76 <dependency>
77 <groupId>mysql</groupId>
78 <artifactId>mysql-connector-java</artifactId>
79 <version>${mysql.version}</version>
80 </dependency>
81
82 <dependency>
83 <groupId>javax.servlet</groupId>
84 <artifactId>servlet-api</artifactId>
85 <version>2.5</version>
86 <scope>provided</scope>
87 </dependency>
88
89 <dependency>
90 <groupId>javax.servlet.jsp</groupId>
91 <artifactId>jsp-api</artifactId>
92 <version>2.0</version>
93 <scope>provided</scope>
94 </dependency>
95
96 <dependency>
97 <groupId>jstl</groupId>
98 <artifactId>jstl</artifactId>
99 <version>1.2</version>
100 </dependency>
101
102 <!-- log start -->
103 <dependency>
104 <groupId>log4j</groupId>
105 <artifactId>log4j</artifactId>
106 <version>${log4j.version}</version>
107 </dependency>
108
109 <dependency>
110 <groupId>org.slf4j</groupId>
111 <artifactId>slf4j-api</artifactId>
112 <version>${slf4j.version}</version>
113 </dependency>
114
115 <dependency>
116 <groupId>org.slf4j</groupId>
117 <artifactId>slf4j-log4j12</artifactId>
118 <version>${slf4j.version}</version>
119 </dependency>
120 <!-- log end -->
121 <dependency>
122 <groupId>org.mybatis</groupId>
123 <artifactId>mybatis</artifactId>
124 <version>${mybatis.version}</version>
125 </dependency>
126
127 <dependency>
128 <groupId>org.mybatis</groupId>
129 <artifactId>mybatis-spring</artifactId>
130 <version>1.3.0</version>
131 </dependency>
132
133 <dependency>
134 <groupId>c3p0</groupId>
135 <artifactId>c3p0</artifactId>
136 <version>0.9.1.2</version>
137 <type>jar</type>
138 <scope>compile</scope>
139 </dependency>
140
141 </dependencies>
142 <build>
143 <finalName>ssm</finalName>
144 <pluginManagement>
145 <plugins>
146 <plugin>
147 <groupId>org.apache.maven.plugins</groupId>
148 <artifactId>maven-compiler-plugin</artifactId>
149 <version>3.2</version>
150 <configuration>
151 <source>1.8</source>
152 <target>1.8</target>
153 <encoding>UTF-8</encoding>
154 <showWarnings>true</showWarnings>
155 </configuration>
156 </plugin>
157 </plugins>
158 </pluginManagement>
159 </build>
160
161 </project>
4.创建好项目后,在src/main/java中创建包:如图所示:
5.根据数据库设计实体类,同时在控制层、mapper层、service层创建相应的类。如图:
、
6.开始的准备步骤准备完毕,接下来开始整合。
ssm整合是spring+springMVC+mybatis这三个框架进行整合,是要拿spring框架对springMVC和mybatis进行整合。
7.下面对三个框架进行整合:
创建applicationContext.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"
xmlns:aop="http://www.springframework.org/schema/aop"
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/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- =============开启注解扫描Spring中只需要扫描service和mapper============ -->
<context:component-scan base-package="com.hhxy.plx" >
<!--配置哪些注解不扫描exclude 是不处理的-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan> <!-- ==========================读取jdbc工具类==================================== -->
<context:property-placeholder location="classpath:jdbc.properties" />
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean> <!--==============================配置和MyBatis的整合====================== -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定mybatis全局配置文件的位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="dataSource" ref="pooledDataSource"></property>
<!-- 指定mybatis,mapper文件的位置 -->
<property name="mapperLocations" value="classpath*:com/hhxy/plx/mapper/*.xml"></property>
</bean> <!-- ======================配置扫描器,将mybatis接口的实现加入到ioc容器中=========-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--扫描所有mapper接口的实现,加入到ioc容器中 -->
<property name="basePackage" value="com.hhxy.plx.mapper"></property>
</bean> </beans>
8.创建springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启注解扫描 只扫描Controller -->
<context:component-scan base-package="com.hhxy.plx">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!--配置的视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean> <!--过滤静态资源-->
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/js/" mapping="/js/**" /> <!--开启SpringMVC注解的支持-->
<mvc:annotation-driven/> </beans>
9.创建mybatis-config.xml 这个可以不用写东西,但是它一定要有。
<?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> </configuration>
10.创建log4j.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
11.web.xml相关配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>blog</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <!-- Spring 整合 Springweb配置Spring监听器 -->
<!--配置Spring的监听器,默认只加载WEB-INF目录下的applicationContext.xml配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--设置配置文件的路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name/>
<param-value/>
</context-param> <!-- 此部分为springMVC的配置 --> <!--配置前端控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载springmvc.xml配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--启动服务器,创建该servlet-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!--解决中文乱码的过滤器-->
<filter>
<filter-name>characterEncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>
12.上面就是所有配置文件。
UserController:
package com.hhxy.plx.controller; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.hhxy.plx.entity.User;
import com.hhxy.plx.service.UserService; @Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public String findAll() {
System.out.println("Controller执行成功!!");
userService.findAll();
return "login"; }
@RequestMapping("/save")
public String save(User user) {
userService.saveUser(user);
return "login"; } }
User实体类:
package com.hhxy.plx.entity; public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }
UserMapper接口类:
package com.hhxy.plx.mapper; import com.hhxy.plx.entity.User; public interface UserMapper { void saveUser(User user); }
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hhxy.plx.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.hhxy.plx.mapper.UserMapper">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="password" jdbcType="VARCHAR" property="password" /> </resultMap>
<select id="findAll" parameterType="com.hhxy.plx.entity.User" resultMap="BaseResultMap">
select * from user
</select>
<insert id="saveUser" parameterType="com.hhxy.plx.entity.User"> insert into user(username,password) values (#{username},#{password})
</insert> </mapper>
UserService接口类:
package com.hhxy.plx.service; import java.util.List; import com.hhxy.plx.entity.User; public interface UserService { public List<User> findAll(); public void saveUser(User user); }
UserServiceImpl实现类:
package com.hhxy.plx.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.hhxy.plx.entity.User;
import com.hhxy.plx.mapper.UserMapper;
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper; public List<User> findAll(){
System.out.println("ServiceImpl调用成功!!!!");
return null; } @Override
public void saveUser(User user) {
System.out.println("保存用户!!!");
userMapper.saveUser(user); } }
index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<a href="user/login">测试跳转</a>
<form action="user/save" method="post">
账号:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/> <input type="submit" value="保存"> </form> </body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
login页面 </body>
</html>
测试:
输入要保存的账号密码:跳转保存。
刷新数据库:
用maven对ssm进行整合的更多相关文章
- 基于maven的ssm框架整合
基于maven的ssm框架整合 第一步:通过maven建立一个web项目. 第二步:pom文件导入jar包 (1 ...
- IDEA下基于MAVEN的SSM框架整合
源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...
- MyEclipse的多模块Maven web(ssm框架整合)
Maven的多模块可以让项目结构更明确,提高功能的内聚,降低项目的耦合度,真正的体现出分层这一概念. 我们在操作中,要明白为什么这样做,要了解到更深的层次,这样,我们就不限于个别软件了. 话不多说,直 ...
- IDEA使用maven搭建SSM框架整合项目(超级详细,值得一看)
目录 温馨提示 简单介绍下SSM 搭建过程 一.框架介绍 二.下载Maven 三.创建Maven项目 四.Maven工程需要引入的Jar 包 五.整合SSM框架.需要的相关配置文件配置项目 六.工程导 ...
- maven项目快速搭建SSM框架(一)创建maven项目,SSM框架整合,Spring+Springmvc+Mybatis
首先了解服务器开发的三层架构,分配相应的任务,这样就能明确目标,根据相应的需求去编写相应的操作. 服务器开发,大致分为三层,分别是: 表现层 业务层 持久层 我们用到的框架分别是Spring+Spri ...
- 使用Maven完成SSM框架整合环境构建——基于Spring4和Mybatis3
只言片语 使用Maven来搭建一个SSM环境,其实和使用手工倒入jar的过程没有多大区别,所用的jar包都是一样的,但是区别在与不用你手动导入jar包了,而是只修改pom.xml,maven会自动根据 ...
- SSM框架整合环境构建——基于Spring4和Mybatis3
目录 环境 配置说明 所需jar包 配置db.properties 配置log4j.properties 配置spring.xml 配置mybatis-spring.xml 配置springmvc.x ...
- 使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
- 【转载】使用IntelliJ IDEA创建Maven聚合工程、创建resources文件夹、ssm框架整合、项目运行一体化
一.创建一个空的项目作为存放整个项目的路径 1.选择 File——>new——>Project ——>Empty Project 2.WorkspaceforTest为项目存放文件夹 ...
随机推荐
- SQLMAP之tamper详解
sqlmap 是一款注入神器广为人知,里面的 tamper 常常用来绕过 WAF ,很实用的模块,但是却常常被新手忽略(比如我),今天就整理总结一下 tamper 的用法以及 tamper 的编写 P ...
- 开关VoLTE流程分析(一)
开关按钮位置: 设置--> 更多--> 移动网络--> 增强型4G LTE模式 控件初始化addEnhanced4GLteSwitchPreference,该设置开关使用了Switc ...
- C# 第三方库
基本上选用的都是 https://www.nuget.org 分类中最流行的那个库 1. 日志工具库 NLOG Stackify.com 简单入门文章 https://stackify.com/nl ...
- docker系列(四):数据卷
1 引言 容器就相当于一个简易的操作系统,我们在上面部署我们的环境,不可避免地产生一些数据,但是,可能由于断电等等原因,容器退出了,那么之前容器中的数据就不符存在,则往往不是我们想要的,更多的,我们是 ...
- MySQL 部署分布式架构 MyCAT (二)
安装 MyCAT 安装 java 环境(db1) yum install -y java 下载 Mycat-server-1.6.5-release-20180122220033-linux.tar. ...
- 微信小程序之 catalog 切换
组件名称:catalog 组件属性:catalogData,type:String 组件描述:这是一个子组件,数据从父组件中传递 效果图: catalog 目录为多个,使用 scroll-view 容 ...
- Weblogic的三种部署方式
Weblogic的三种部署方式 在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件c ...
- golang数据结构和算法之DoublyLinkedList双向链表
双向链表比起单向链表, 多了一个向前指向的指针, 所以在增删查改时,要同时照顾到两个指针的指向. DoublyLinkedList.go package DoublyLinkedList //双向链表 ...
- 理解docker镜像
镜像是用来启动容器的只读模板,是容器启动所需要的rootfs,类似于虚拟机所使用的镜像. 列出本机镜像 [root@localhost ~]# docker imagesREPOSITORY TAG ...
- leetcode 分类
https://www.douban.com/note/330562764/ https://blog.csdn.net/Irving_zhang/article/details/78835035 h ...