溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在maven項目中使用ssm框架

發(fā)布時間:2021-04-13 17:26:49 來源:億速云 閱讀:246 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家?guī)碛嘘P如何在maven項目中使用ssm框架,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1.1、Spring

Spring是一個開源框架,Spring是于2003 年興起的一個輕量級的Java 開發(fā)框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC

Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。

1.3、MyBatis

MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。

第一步:通過maven建立一個web項目。

第二步:pom文件導入jar包

(1) pom.xml

我把我pom文件整個都拷貝來了,有些初始化就有的東西你要去掉,保留你自己pom生成的那份。

<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>com.test</groupId>
 <artifactId>ssm</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>ssm Maven Webapp</name>
 <url>http://maven.apache.org</url>
 
 <properties> 
  <!-- spring版本號 --> 
  <spring.version>4.0.2.RELEASE</spring.version> 
  <!-- mybatis版本號 --> 
  <mybatis.version>3.2.6</mybatis.version> 
  <!-- log4j日志文件管理包版本 --> 
  <slf4j.version>1.7.7</slf4j.version> 
  <log4j.version>1.2.17</log4j.version> 
 </properties> 
 
 <dependencies>
 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
 </dependency>
  <dependency> 
   <groupId>org.springframework</groupId> 
   <artifactId>spring-core</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-oxm</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-jdbc</artifactId> 
   <version>${spring.version}</version> 
  </dependency> 
 
  <dependency> 
   <groupId>org.springframework</groupId> 
   <artifactId>spring-webmvc</artifactId> 
   <version>${spring.version}</version> 
  </dependency> 
  <dependency> 
   <groupId>org.springframework</groupId> 
   <artifactId>spring-aop</artifactId> 
   <version>${spring.version}</version> 
  </dependency> 
 
  <dependency> 
   <groupId>org.springframework</groupId> 
   <artifactId>spring-context-support</artifactId> 
   <version>${spring.version}</version> 
  </dependency> 
 
  <dependency> 
   <groupId>org.springframework</groupId> 
   <artifactId>spring-test</artifactId> 
   <version>${spring.version}</version> 
  </dependency> 
  <!-- mybatis核心包 --> 
  <dependency> 
   <groupId>org.mybatis</groupId> 
   <artifactId>mybatis</artifactId> 
   <version>${mybatis.version}</version> 
  </dependency> 
  <!-- mybatis/spring包 --> 
  <dependency> 
   <groupId>org.mybatis</groupId> 
   <artifactId>mybatis-spring</artifactId> 
   <version>1.2.2</version> 
  </dependency> 
  <!-- 導入java ee jar 包 --> 
  <dependency> 
   <groupId>javax</groupId> 
   <artifactId>javaee-api</artifactId> 
   <version>7.0</version> 
  </dependency> 
  <!-- 導入Mysql數(shù)據(jù)庫鏈接jar包 --> 
  <dependency> 
   <groupId>mysql</groupId> 
   <artifactId>mysql-connector-java</artifactId> 
   <version>5.1.30</version> 
  </dependency> 
  <!-- 導入dbcp的jar包,用來在applicationContext.xml中配置數(shù)據(jù)庫 --> 
  <dependency> 
   <groupId>commons-dbcp</groupId> 
   <artifactId>commons-dbcp</artifactId> 
   <version>1.2.2</version> 
  </dependency> 
  <!-- JSTL標簽類 --> 
  <dependency> 
   <groupId>jstl</groupId> 
   <artifactId>jstl</artifactId> 
   <version>1.2</version> 
  </dependency> 
  <!-- 日志文件管理包 --> 
  <!-- log start --> 
  <dependency> 
   <groupId>log4j</groupId> 
   <artifactId>log4j</artifactId> 
   <version>${log4j.version}</version> 
  </dependency> 
   
   
  <!-- 格式化對象,方便輸出日志 --> 
  <dependency> 
   <groupId>com.alibaba</groupId> 
   <artifactId>fastjson</artifactId> 
   <version>1.1.41</version> 
  </dependency> 
 
 
  <dependency> 
   <groupId>org.slf4j</groupId> 
   <artifactId>slf4j-api</artifactId> 
   <version>${slf4j.version}</version> 
  </dependency> 
 
  <dependency> 
   <groupId>org.slf4j</groupId> 
   <artifactId>slf4j-log4j12</artifactId> 
   <version>${slf4j.version}</version> 
  </dependency> 
  <!-- log end --> 
  <!-- 映入JSON --> 
  <dependency> 
   <groupId>org.codehaus.jackson</groupId> 
   <artifactId>jackson-mapper-asl</artifactId> 
   <version>1.9.13</version> 
  </dependency> 
  <!-- 上傳組件包 --> 
  <dependency> 
   <groupId>commons-fileupload</groupId> 
   <artifactId>commons-fileupload</artifactId> 
   <version>1.3.1</version> 
  </dependency> 
  <dependency> 
   <groupId>commons-io</groupId> 
   <artifactId>commons-io</artifactId> 
   <version>2.4</version> 
  </dependency> 
  <dependency> 
   <groupId>commons-codec</groupId> 
   <artifactId>commons-codec</artifactId> 
   <version>1.9</version> 
  </dependency> 
 </dependencies>
 <build>
 <finalName>ssm</finalName>
 </build>
</project>

第三步:看整體的項目架構,先說明下我這里還沒有有關springMVC的相關東西,因為我先整合sping-mybatis,在測試是否成功,成功在整合springMVC

如何在maven項目中使用ssm框架

第四步:建立model類

public class User {
 private int id;
 private String name;
 private String password;
 private String password2; 
/*提供set和get方法,toString方法*/
}

第五步:創(chuàng)建數(shù)據(jù)庫,UserDao接口和mapper映射文件

(1)建立很簡單的一張表

如何在maven項目中使用ssm框架

(2)UserDao接口

public interface UserDao {
  User findUserById(User user);
}

(3)UesrMapper.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">
<!-- namespace命名空間,指向UserDao全路徑-->
<mapper namespace="com.ssm.dao.UserDao">

 <!-- 根據(jù)id查詢用戶信息 -->
 <!-- 
  id:唯一標識 一個statement,和UserDao方法名一致
  #{}:表示 一個占位符,如果#{}中傳入簡單類型的參數(shù),#{}中的名稱隨意
  parameterType:輸入 參數(shù)的類型,和UserDao()里參數(shù)一致
  resultType:輸出結果 類型,和UserDao()返回類型一致
  -->
 <select id="findUserById" parameterType="com.ssm.model.User" resultType="com.ssm.model.User">
  SELECT * FROM USER 
  <where>
  <if test="name != null">
   AND Name= #{name}
  </if>
  <if test="password != null">
   AND password= #{password}
  </if>
  </where> 
 </select>
 </mapper>

第五步:創(chuàng)建UserService和UserServiceImpl

(1)UserService

public interface UserService {
  public User getUserById(User user); 
}

(2)UserServiceImpl

import org.springframework.stereotype.Service;
import com.ssm.dao.UserDao;
import com.ssm.model.User;
import com.ssm.service.UserService;
@Service("userService")
public class UserServerImpl implements UserService {
 @Resource
 private UserDao userDao;
 public User getUserById(User user) {
  return this.userDao.findUserById(user);
 }
}

第六步:創(chuàng)建jdbc文件和log日志文件

(1)jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/test?useUnicode=true&&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root

(2)log4j.properties

log4j.rootLogger=INFO,Console,File 
#定義日志輸出目的地為控制臺 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.Target=System.out 
#可以靈活地指定日志輸出格式,下面一行是指定具體的格式 
log4j.appender.Console.layout = org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n 
 
#文件大小到達指定尺寸的時候產(chǎn)生一個新的文件 
log4j.appender.File = org.apache.log4j.RollingFileAppender 
#指定輸出目錄 
log4j.appender.File.File = logs/ssm.log 
#定義文件最大大小 
log4j.appender.File.MaxFileSize = 10MB 
# 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志 
log4j.appender.File.Threshold = ALL 
log4j.appender.File.layout = org.apache.log4j.PatternLayout 
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

第七步:整合spring-mybatis.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" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.1.xsd 
      http://www.springframework.org/schema/mvc 
      http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
 <!-- 自動掃描 --> 
 <context:component-scan base-package="com.ssm" /> 
 <!-- 引入實現(xiàn)jdbc配置文件 --> 
 <bean id="propertyConfigurer" 
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
  <property name="location" value="classpath:jdbc.properties" /> 
 </bean> 
 
 <!-- 2.數(shù)據(jù)庫連接池 -->
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
  destroy-method="close"> 
  <property name="driverClassName" value="${jdbc.driver}" /> 
  <property name="url" value="${jdbc.url}" /> 
  <property name="username" value="${jdbc.username}" /> 
  <property name="password" value="${jdbc.password}" /> 
 </bean> 
 
  <!-- spring和MyBatis整合,通過spring來管理MyBatis的SqlSessionFactory會話工廠 -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
  <!-- 指定數(shù)據(jù)庫連接池引用 -->
  <property name="dataSource" ref="dataSource" /> 
  <!-- 自動掃描mapping.xml文件 --> 
  <property name="mapperLocations" value="classpath:com/ssm/mapper/*.xml"></property> 
 </bean> 
 
 <!-- DAO接口所在包名,Spring會自動查找其下的類 --> 
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
  <property name="basePackage" value="com.ssm.dao" /> 
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> 
 </bean> 
 
 <!-- (事務管理)transaction manager, use JtaTransactionManager for global tx --> 
 <bean id="transactionManager" 
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
  <property name="dataSource" ref="dataSource" /> 
 </bean> 
</beans>

第八步:建立測試類

經(jīng)過以上步驟(log4j不配也沒影響),我們已經(jīng)完成了Spring和mybatis的整合,這樣我們就可以編寫一段測試代碼來試試是否成功了。

測試類在src/test/java中建立,如果測試成功,表示Spring和Mybatis已經(jīng)整合成功了。輸出信息使用的是Log4j打印到控制臺。

(1)TestMyBatis測試類

package ssm;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.ssm.model.User;
import com.ssm.service.UserService;

/*讓測試運行于Spring測試環(huán)境*/
@RunWith(SpringJUnit4ClassRunner.class) 

/*用來指定加載的Spring配置文件的位置,會加載默認配置文件*/
@ContextConfiguration(locations = { "classpath:spring-mybatis.xml" })

public class TestMyBatis {

 @Resource(name = "userService") 
 private UserService userService;

 @Test
 public void test1() {
  User user=new User();
  user.setName("張三");
  user.setPassword("123");
  User user1 = userService.getUserById(user);
  System.out.println(user1.toString());
 }
}

最后!關鍵看后臺輸出,也是見證奇跡的時候,如果輸出對象那說明你配置整合成功!

如何在maven項目中使用ssm框架

那接下來我們開始整合springMVC

如何在maven項目中使用ssm框架

第九步:配置springmvc.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" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.1.xsd 
      http://www.springframework.org/schema/mvc 
      http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
 <!-- 自動掃描該包,使SpringMVC認為包下用了@controller注解的類是控制器 --> 
 <context:component-scan base-package="com.ssm.controller" /> 
 <!--避免IE執(zhí)行AJAX時,返回JSON出現(xiàn)下載文件 --> 
 <bean id="mappingJacksonHttpMessageConverter" 
  class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
  <property name="supportedMediaTypes"> 
   <list> 
    <value>text/html;charset=UTF-8</value> 
   </list> 
  </property> 
 </bean> 
 <!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 --> 
 <bean 
  class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
  <property name="messageConverters"> 
   <list> 
    <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON轉換器 --> 
   </list> 
  </property> 
 </bean> 
 <!-- 定義跳轉的文件的前后綴 ,視圖模式配置--> 
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
  <!-- 這里的配置我的理解是自動給后面action的方法return的字符串加上前綴和后綴,變成一個 可用的url地址 --> 
  <property name="prefix" value="/WEB-INF/jsp/" /> 
  <property name="suffix" value=".jsp" /> 
 </bean> 
  
 <!-- 配置文件上傳,如果沒有使用文件上傳可以不用配置,當然如果不配,那么配置文件中也不必引入上傳組件包 --> 
 <bean id="multipartResolver" 
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
  <!-- 默認編碼 --> 
  <property name="defaultEncoding" value="utf-8" /> 
  <!-- 文件大小最大值 --> 
  <property name="maxUploadSize" value="10485760000" /> 
  <!-- 內存中的最大值 --> 
  <property name="maxInMemorySize" value="40960" /> 
 </bean> 
 
</beans>

第十步:配置web.xml文件

這里面對spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是為了完成SSM整合,之前2框架整合不需要在此處進行任何配置。

<?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" 
 version="3.0"> 
 <display-name>Archetype Created Web Application</display-name> 
 <!-- Spring和mybatis的配置文件 --> 
 <context-param> 
  <param-name>contextConfigLocation</param-name> 
  <param-value>classpath:spring-mybatis.xml</param-value> 
 </context-param> 
 <!-- 編碼過濾器 --> 
 <filter> 
  <filter-name>encodingFilter</filter-name> 
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
  <async-supported>true</async-supported> 
  <init-param> 
   <param-name>encoding</param-name> 
   <param-value>UTF-8</param-value> 
  </init-param> 
 </filter> 
 <filter-mapping> 
  <filter-name>encodingFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping> 
 <!-- Spring監(jiān)聽器 --> 
 <listener> 
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
 </listener> 
 <!-- 防止Spring內存溢出監(jiān)聽器 --> 
 <listener> 
  <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 
 </listener> 
 
 <!-- Spring MVC servlet --> 
 <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:springmvc.xml</param-value> 
  </init-param> 
  <load-on-startup>1</load-on-startup> 
  <async-supported>true</async-supported> 
 </servlet> 
 <servlet-mapping> 
  <servlet-name>SpringMVC</servlet-name> 
  <!-- 此處可以可以配置成*.do,對應struts的后綴習慣 --> 
  <url-pattern>/</url-pattern> 
 </servlet-mapping> 
 <welcome-file-list> 
  <welcome-file>/index.jsp</welcome-file> 
 </welcome-file-list> 
 
</web-app>

第十一步最后測試:

(1) 先寫login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<html>
<head>
<title>用戶登錄:</title>
</head>
<body>
<form action="login">
<label>用戶名:</label>
<input type="text" id="username" name="username"></input><br><br>
<label>密碼:</label>
<input type="text" id="password" name="password"></input><br><br>
<input type="submit" value="登錄"/>
</form>
</body>
</html>

界面:

如何在maven項目中使用ssm框架

(2)在寫UserController

import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ssm.dao.UserDao;
import com.ssm.model.User;
@Controller
public class UserController {
 @Resource
 private UserDao userDao;  
@RequestMapping("/jsp/login") 
public String login(HttpServletRequest request){
 String username=request.getParameter("username");
 String password=request.getParameter("password");
 User user=new User();
 //根據(jù)用戶名和學生查詢數(shù)據(jù)庫
 user.setName(username);
 user.setPassword(password);
  User users=userDao.findUserById(user);
 //如果有學生就說明登錄成功
 if(users!=null){
  return "susscss";
 }
 //這個jsp我沒有寫,大家知道就好,你們可以自己寫
 return "err";
} 
}

(3)最后susscss.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<html>
<body>
<P>用戶賬號密碼正確,登錄成功</P>
</body>
</html>

完美!

如何在maven項目中使用ssm框架

上述就是小編為大家分享的如何在maven項目中使用ssm框架了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI