這篇文章主要介紹了spring+springmvc+mybatis+maven入門實戰(超詳細教程),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
入門篇
本篇文章涉及到的技術有spring、springmvc、mybatis、mysql、xml、maven、jsp、javase、javaweb、eclipse
下面開始本篇文章的教程
一、新建maven項目
一般通過這種方法新建maven項目
![spring+springmvc+mybatis+maven入門實戰(超詳細教程)](http://p2.ttnews.xyz/loading.gif)
![spring+springmvc+mybatis+maven入門實戰(超詳細教程)](http://p2.ttnews.xyz/loading.gif)
假如你的eclipse不能通過上面的方法新建maven項目,也可以通過下面的方法新建maven項目
看到下面的項目結構,說明你已經成功創建了一個maven項目。但是這個項目報錯,根據標準的web項目結構來說,目前這個項目缺少了web.xml
利用eclipse自動生成web.xml
看到這個項目已經沒有報錯,說明已經成功生成了web.xml
二、Maven配置
下面是該項目的maven配置,在pom.xml進行以下配置
<code><project> 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">
<modelversion>4.0.0/<modelversion>
<groupid>com.wffanshao/<groupid>
<artifactid>test/<artifactid>
<version>0.0.1-SNAPSHOT/<version>
<packaging>war/<packaging>
<properties>
<spring.version>4.3.6.RELEASE/<spring.version>
/<properties>
<dependencies>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-aop/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-aspects/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-beans/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-context/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-core/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-expression/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-jdbc/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-tx/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-web/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.springframework/<groupid>
<artifactid>spring-webmvc/<artifactid>
<version>${spring.version}/<version>
/<dependency>
<dependency>
<groupid>org.mybatis/<groupid>
<artifactid>mybatis/<artifactid>
<version>3.4.2/<version>
/<dependency>
<dependency>
<groupid>org.mybatis/<groupid>
<artifactid>mybatis-spring/<artifactid>
<version>1.3.1/<version>
/<dependency>
<dependency>
<groupid>aopalliance/<groupid>
<artifactid>aopalliance/<artifactid>
<version>1.0/<version>
/<dependency>
<dependency>
<groupid>asm/<groupid>
<artifactid>asm/<artifactid>
<version>3.3.1/<version>
/<dependency>
<dependency>
<groupid>org.aspectj/<groupid>
<artifactid>aspectjweaver/<artifactid>
<version>1.8.1/<version>
/<dependency>
<dependency>
<groupid>cglib/<groupid>
<artifactid>cglib/<artifactid>
<version>2.2.2/<version>
/<dependency>
<dependency>
<groupid>mysql/<groupid>
<artifactid>mysql-connector-java/<artifactid>
<version>5.1.44/<version>
/<dependency>
<dependency>
<groupid>commons-dbcp/<groupid>
<artifactid>commons-dbcp/<artifactid>
<version>1.4/<version>
/<dependency>
<dependency>
<groupid>commons-pool/<groupid>
<artifactid>commons-pool/<artifactid>
<version>1.6/<version>
/<dependency>
<dependency>
<groupid>commons-logging/<groupid>
<artifactid>commons-logging/<artifactid>
<version>1.1.1/<version>
/<dependency>
<dependency>
<groupid>javax.servlet/<groupid>
<artifactid>jstl/<artifactid>
<version>1.2/<version>
/<dependency>
<dependency>
<groupid>org.slf4j/<groupid>
<artifactid>slf4j-api/<artifactid>
<version>1.7.5/<version>
/<dependency>
<dependency>
<groupid>org.slf4j/<groupid>
<artifactid>slf4j-log4j12/<artifactid>
<version>1.7.5/<version>
/<dependency>
<dependency>
<groupid>org.javassist/<groupid>
<artifactid>javassist/<artifactid>
<version>3.18.1-GA/<version>
/<dependency>
/<dependencies>
<build>
<finalname>test/<finalname>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins/<groupid>
<artifactid>maven-compiler-plugin/<artifactid>
<configuration>
<source>1.8/<source>
<target>1.8/<target>
/<configuration>
/<plugin>
/<plugins>
/<build>
<repositories>
<repository>
people.apache.snapshots
http://repository.apache.org/content/groups/snapshots-group/
<releases>
<enabled>false/<enabled>
/<releases>
<snapshots>
<enabled>true/<enabled>
/<snapshots>
/<repository>
/<repositories>
/<project>/<code>
三、搭建ssm環境
1.在src/main/java新建4個包、在src/main/resources下新建2個包以及2個properties文件、在webapp/WEB-INF下新建1個文件夾,包名、文件名以及文件夾名如圖所示。
src/main/java:一般用來存放java文件
src/main/resources:一般用來存放ssm相關的配置文件
src/test/java和src/test/resources:一般用來存放測試文件,這兩個包下的文件不會被編譯、打包等
webapp/WEB-INF:一般用來存放普通用戶訪問不到而管理員可以訪問的web動態頁面
2.配置log4j日誌文件
log4j.properties代碼如下,有些網友在複製樓主的代碼會產生亂碼,這是由於eclipse的properties文件默認編碼為ISO-8859-1
我們需要將編碼設置為UTF-8
<code>##### Global logging configuration
##### 在開發環境下日誌級別設置成DEBUG,生產環境設置成INFO或ERROR
log4j.rootLogger=DEBUG, stdout
##### mybatis日誌配置
log4j.logger.org.mybatis.example.BlogMapper=TRACE
##### 輸出到控制檯,這裡也可以輸出到文件中,可以自己設置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n/<code>
3.配置數據源文件
db.properties代碼如下,此處採用非硬編碼的方式對數據源進行配置,也就是將數據源相關信息配置到db.properties中,採用非硬編碼的好處是方便項目日後的維護以及方便拓展。當然你也可是採用硬編碼方式(傳統方式)進行配置,也就是直接在spring配置文件中配置。
<code>jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm
jdbc.username=root
jdbc.password=test/<code>
4.在mysql中新建ssm數據庫,並在ssm數據庫中新建一個user表,表的結構如圖所示
5.com.wffanshao.po中新建一個PO類,名字為User
User.java的代碼如下
<code>package com.wffanshao.po;
/**
* @描述 用戶PO類
* @author WF帆少
* @微信 13025261795
*
*/
public class User {
private String username; // 用戶名
private String password; // 用戶密碼
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;
}
}/<code>
6.在com.wffanshao.mapper中新建UserMapper接口和UserMapper.xml
UserMapper.java代碼如下
<code>package com.wffanshao.mapper;
import com.wffanshao.po.User;
/**
* @描述 用戶Mapper接口
* @author WF帆少
* @微信 13025261795
*
*/
public interface UserMapper {
/**
* @描述 添加用戶
* @param user
* @throws Exception
*/
boolean insertUser(User user) throws Exception;
} /<code>
UserMapper.xml代碼如下
<code>
<mapper>
<insert>
INSERT INTO user(username, password)
VALUES(#{username}, #{password})
/<insert>
/<mapper>/<code>
7.在com.wffanshao.service中新建UserService接口
UserService.java代碼如下
<code>package com.wffanshao.service;
import com.wffanshao.po.User;
/**
* @描述 用戶Service接口
* @author WF帆少
* @微信 13025261795
*
*/
public interface UserService {
/**
* @描述 添加用戶
* @param user
* @throws Exception
*/
boolean insertUser(User user) throws Exception;
}/<code>
8.在com.wffanshao.service.impl中新建UserServiceImpl類
UserServiceImpl.java代碼如下
<code>package com.wffanshao.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import com.wffanshao.mapper.UserMapper;
import com.wffanshao.po.User;
import com.wffanshao.service.UserService;
/**
* @描述 用戶Service接口的實現類
* @author WF帆少
* @微信 13025261795
*
*/
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper userMapper;
/**
* @描述 添加用戶
* @param user
* @throws Exception
*/
@Override
public boolean insertUser(User user) throws Exception {
return userMapper.insertUser(user);
}
}/<code>
9.在com.wffanshao.controller中新建UserController類
UserController.java代碼如下
<code>package com.wffanshao.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import com.wffanshao.po.User;
import com.wffanshao.service.UserService;
/**
* @描述 用戶Controller
* @author WF帆少
* @微信 13025261795
*
*/
@Controller
public class UserController {
@Autowired
private UserService userService;
/**
* @描述 跳轉到login.jsp
* @return
*/
@GetMapping("/login")
public String login() {
return "login";
}
/**
* @描述 從login.jsp中的表單提交中獲取數據並將它們添加到數據庫中,
* @return 如果添加成功,跳轉到success.jsp,否則,跳轉到fail.jsp
*/
@PostMapping("/insertUser")
public String insertUser(HttpServletRequest request) throws Exception {
User user = new User();
String username = request.getParameter("username");
String password = request.getParameter("password");
user.setUsername(username);
user.setPassword(password);
boolean isSuccess = false;
isSuccess = userService.insertUser(user);
if (isSuccess) {
return "success";
} else {
return "fail";
}
}
}/<code>
10.在webapp/WEB-INF/jsp下新建login.jsp、success.jsp、fail.jsp
login.jsp
<code> pageEncoding="UTF-8"%>
<title>註冊/<title>
/<code>
success.jsp
<code> pageEncoding="UTF-8"%>
<title>註冊成功/<title>
註冊成功
/<code>
fail.jsp
<code> pageEncoding="UTF-8"%>
<title>註冊失敗/<title>
註冊失敗
/<code>
11.在src/main/resources/spring中新建4個xml文件
application-dao.xml
<code>
<beans> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<property-placeholder>
<bean>
<property>
<property>
<property>
<property>
<property>
<property>
/<bean>
<bean>
<property>
<property>
/<bean>
<bean>
<property>
<property>
/<bean>
/<beans>/<code>
application-service.xml
<code>
<beans> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<bean>
/<beans>/<code>
applicationContext-transaction.xml
<code>
<beans> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<bean>
<property>
/<bean>
<advice>
<attributes>
<method>
<method>
<method>
<method>
<method>
<method>
<method>
/<attributes>
/<advice>
<config>
<advisor>
/<config>
/<beans>/<code>
springmvc.xml
<code>
<beans> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<component-scan> base-package="com.wffanshao.controller">/<component-scan>
<annotation-driven>
<bean> class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property>
<property>
/<bean>
/<beans>/<code>
四、配置tomcat服務器
注意:博主使用的是tomcat7
這裡沒有教大家如何下載安裝配置tomcat服務器,請大家自行學習,或者等博主後續教程補上。這裡只教大家如何用eclipse配置tomcat服務器,需要提前下載解壓安裝好tomcat才能進行此步操作
配置好tomcat服務器之後,你會發現項目報錯了
打開查看報錯原因,你會發現該項目是因為無法解析jsp而報錯,我們可以通過設置項目屬性來解決該問題,即設置該項目的運行環境
設置完成後你會發項目已經不報錯了
四、裝配項目
將該項目添加到tomcat服務器中
到這裡,已經成功將項目裝配到tomcat服務器中了。
五、啟動tomcat服務器
啟動服務器
看到started並且控制檯沒有報錯說明服務器啟動成功
六、測試
在瀏覽器地址欄中http://localhost:8080/test/login,tomcat服務器默認端口為8080
接著輸入用戶名和密碼,然後點擊註冊
註冊成功會跳轉到成功頁面,並且在數據庫中能查詢到我們剛才輸入的用戶名和密碼,
看到下面2張圖所示的內容,證明ssm環境整合成功
以上就是本文的全部內容,希望對大家的學習有所幫助,喜歡的小夥伴可以關注小編並幫小編轉發。
閱讀更多 架構師公社 的文章