SSM框架的简单搭建
轉:https://blog.csdn.net/zhshulin/article/details/37956105
Spring+SpringMVC+MyBatis
spring ? ? ? : 4.3.13.RELEASE
springMVC? ? ?:? ?4.3.13.RELEASE
mybatis ? ? ? ?:??3.2.6
開發工具? ? ? ? :? ?IDEA
jar包管理工具:? ?maven
?
?
首先先通過IDEA快速構建一個maven web項目,.....
先通過maven把相關的jar引入到項目中
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><!-- spring版本號 --><spring.version>4.3.13.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>4.12</version><!-- 表示開發的時候引入,發布的時候不會加載此包 --><scope>test</scope></dependency><!-- spring核心包 --><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-aspects</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數據庫鏈接jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.8</version></dependency><!-- 導入dbcp的jar包,用來在applicationContext.xml中配置數據庫 --><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><!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><!-- jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.8.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.8.5</version></dependency></dependencies>項目目錄結構:
?
?創建一個jdbc.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/db_zsl?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull username=root password=123456 #定義初始連接數 initialSize=0 #定義最大連接數 maxActive=20 #定義最大空閑 maxIdle=20 #定義最小空閑 minIdle=1 #定義最長等待時間 maxWait=60000
建立spring-mybatis.xml配置文件
?這個文件就是用來完成spring和mybatis的整合的。這里面也沒多少行配置,主要的就是自動掃描,自動注入,配置數據庫。注釋也很詳細,大家看看就明白了。
<?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:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"default-lazy-init="false"><!-- 自動掃描 --><context:component-scan base-package="com.lyl" /><!-- 引入配置文件 --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:jdbc.properties" /></bean><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /><!-- 初始化連接大小 --><property name="initialSize" value="${initialSize}"></property><!-- 連接池最大數量 --><property name="maxActive" value="${maxActive}"></property><!-- 連接池最大空閑 --><property name="maxIdle" value="${maxIdle}"></property><!-- 連接池最小空閑 --><property name="minIdle" value="${minIdle}"></property><!-- 獲取連接最大等待時間 --><property name="maxWait" value="${maxWait}"></property></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自動掃描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/lyl/mapping/*.xml"></property></bean><!-- DAO接口所在包名,Spring會自動查找其下的類 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lyl.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><!-- 事務注解支持 --><tx:annotation-driven/><!-- 切面事務 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="create*" propagation="REQUIRED"/><tx:method name="change*" propagation="REQUIRED"/><tx:method name="give*" propagation="REQUIRED"/><tx:method name="save*" propagation="REQUIRED"/><tx:method name="cancel*" propagation="REQUIRED"/><tx:method name="do*" propagation="REQUIRED"/><tx:method name="*" read-only="true"/></tx:attributes></tx:advice><!-- 通過AOP配置提供事務增強,讓service包下所有Bean的所有方法擁有事務 --><aop:config proxy-target-class="true"><aop:pointcut id="serviceMethods" expression="execution(* com.lyl.service.*.*(..))"/><aop:advisor pointcut-ref="serviceMethods" advice-ref="txAdvice"/></aop:config></beans>Log4j的配置
為了方便調試,一般都會使用日志來輸出信息,Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX?Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。
log4j.properties
#定義LOG輸出級別 log4j.rootLogger=DEBUG,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#文件大小到達指定尺寸的時候產生一個新的文件 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
JUnit測試
?經過以上步驟(log4j不配也沒影響),我們已經完成了Spring和mybatis的整合,這樣我們就可以編寫一段測試代碼來試試是否成功了。
創建測試用表
既然我們需要測試,那么我們就需要建立在數據庫中建立一個測試表,這個表建的很簡單,SQL語句為:
DROP TABLE IF EXISTS `user_t`;CREATE TABLE `user_t` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_name` varchar(40) NOT NULL,`password` varchar(255) NOT NULL,`age` int(4) NOT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;/*Data for the table `user_t` */insert into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'測試','sfasgfaf',24);
利用MyBatis Generator自動創建代碼
先創建genreatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自動生成的注釋 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/db_zsl" userId="root"password="123456"></jdbcConnection><!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"userId="yycg"password="yycg"></jdbcConnection> --><!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO類的位置 --><javaModelGenerator targetPackage="com.lyl.entity"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /><!-- 從數據庫返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.lyl.dao"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.lyl.mapper"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的后綴 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定數據庫表 --><table tableName="user_t" enableCountByExample="false"enableUpdateByExample="false"enableDeleteByExample="false"enableSelectByExample="false"selectByExampleQueryId="false"></table><!-- 有些表的字段需要指定java類型<table schema="" tableName=""><columnOverride column="" javaType="" /></table> --></context> </generatorConfiguration>再創建一個java類
import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback;import java.io.File; import java.util.ArrayList; import java.util.List;/*** @Auther: long* @Date: 2018/5/14 17:37* @Description:*/ public class GeneratorSqlmap {public void generator() throws Exception{List<String> warnings = new ArrayList<String>();boolean overwrite = true;//指定 逆向工程配置文件File configFile = new File(this.getClass().getResource("genreatorConfig.xml").getPath());ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);myBatisGenerator.generate(null);}public static void main(String[] args) throws Exception {try {GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();generatorSqlmap.generator();} catch (Exception e) {e.printStackTrace();}}}運行一下main方法就能生成對應的實體和xml,dao層代碼,在把相應的文件放到對應的目錄下即可
建立Service接口和實現類
?
?
下面給出具體的內容:
IUserService.jave
package com.lyl.service;import com.lyl.entity.UserT;/*** @Auther: long* @Date: 2018/5/15 09:48* @Description:*/ public interface IUserservice {public UserT getUserById(int userId);public int insertUser(UserT userT); }UserServiceImpl.java
package com.lyl.service.impl;import com.lyl.dao.UserTMapper; import com.lyl.entity.UserT; import com.lyl.service.IUserservice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;/*** @Auther: long* @Date: 2018/5/15 09:50* @Description:*/ @Service("userService") public class UserServiceImpl implements IUserservice {@Autowiredprivate UserTMapper userDao;@Overridepublic UserT getUserById(int userId) {return this.userDao.selectByPrimaryKey(userId);}@Overridepublic int insertUser(UserT userT) {return userDao.insert(userT);} }
建立測試類
??如果測試成功,表示Spring和Mybatis已經整合成功了。輸出信息使用的是Log4j打印到控制臺。
package com.lyl.service.impl;import com.alibaba.fastjson.JSON; import com.lyl.entity.UserT; import com.lyl.service.IUserservice; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/*** @Auther: long* @Date: 2018/5/16 08:32* @Description:*/ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"}) public class UserServiceImplTest {private static Logger logger = Logger.getLogger(UserServiceImplTest.class);@Autowiredprivate IUserservice userService;@Testpublic void getUserById() {UserT user = userService.getUserById(1);logger.info(JSON.toJSONString(user));}}測試結果
至此,完成Spring和mybatis這兩大框架的整合,下面在繼續進行SpringMVC的整合。
?
整合SpringMVC
上面已經完成了2大框架的整合,SpringMVC的配置文件單獨放,然后在web.xml中配置整合。
?
配置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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><mvc:annotation-driven /><!--<context:annotation-config />--><!--<!– 包掃描 –>--><!--<context:component-scan base-package="com.lyl" />--><!--避免IE執行AJAX時,返回JSON出現下載文件 --><!-- 自動掃描該包,使SpringMVC認為包下用了@controller注解的類是控制器 --><context:component-scan base-package="com.lyl" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean><!-- 啟動SpringMVC的注解功能,完成請求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON轉換器 --></list></property></bean><!--<!– 切面支持 需要配置在掃描 –>--><!--<aop:aspectj-autoproxy proxy-target-class="true"/>--><!-- 定義跳轉的文件的前后綴 ,視圖模式配置--><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>配置一個spring-context.xml,把Controller注解的掃描和其他注解分離開來,然后引入其他的配置文件
<?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"
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"
default-lazy-init="true">
<!-- 只掃描除了@Controller的所有注解 -->
<context:component-scan base-package="com.lyl">
<context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/>
</context:component-scan>
<!-- 引入配置文件 -->
<!--<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">-->
<!--<property name="locations">-->
<!--<list>-->
<!--<value>classpath*:jdbc.properties</value>-->
<!--</list>-->
<!--</property>-->
<!--</bean>-->
<!-- 引入其他配置文件 -->
<import resource="classpath:spring-mybatis.xml"/>
</beans>
配置web.xml文件
這里面對spring-context.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-context.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監聽器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 防止Spring內存溢出監聽器 --><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:spring-mvc.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>測試
至此已經完成了SSM三大框架的整合了,接下來測試一下,如果成功了,那么恭喜你,如果失敗了,繼續調試吧,作為程序員就是不停的與BUG做斗爭!
?
新建jsp頁面
showUser.jsp?? 此頁面僅輸出一下用戶名,完成一個完整的簡單流程。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>測試</title></head><body>${user.userName}</body> </html>?
建立UserController類
UserController.java??控制器
package com.lyl.controller;import com.lyl.entity.UserT; import com.lyl.service.IUserservice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest;/*** @Auther: long* @Date: 2018/5/15 11:36* @Description:*/ @Controller @RequestMapping("/user") public class UserController {@Autowiredprivate IUserservice userservice;@GetMapping("/showUser")public String toIndex(HttpServletRequest request, Model model) {int userId = Integer.parseInt(request.getParameter("userId"));UserT user = userservice.getUserById(userId);model.addAttribute("user",user);return "showUser";} }
部署項目
輸入地址:localhost:8080/user/showUser?id=1
至此,SSM三大框架的整合就完成了,在此基礎上可再添加其他功能。
?
遇到的問題:
問題一:
在把spring相關jar包從 4.0.2?RELEASE升級到4.3.13.RELEASE出了好多問題
<!--避免IE執行AJAX時,返回JSON出現下載文件 --><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean>一直報找不到MappingJackson2HttpMessageConverter這個錯誤
原來是少了三個jar包
<!-- jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.8.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.8.5</version></dependency>?
?
問題二:
還有一個就是掃描問題,升級了一下版本自動掃描注解也出了點問題,后面加了幾個掃描進去就好了
spring-mvc.xml
<mvc:annotation-driven /><!-- 自動掃描該包,使SpringMVC認為包下用了@controller注解的類是控制器 --><context:component-scan base-package="com.lyl" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>spring-context.xml
<!-- 只掃描除了@Controller的所有注解 --><context:component-scan base-package="com.lyl"><context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/></context:component-scan>這樣后面啟動就沒有問題了
?
問題三:
后面測試的時候利用junit測試的時候一直報錯
可能是版本不兼容的原因,剛開始用的版本是4.11,后面換成了4.12就沒有問題了
問題四:
后面在測試添加用戶的時候,也報錯說好像是只讀,不能修改的問題,后面網上找了一下,有的說修改數據庫權限,
有的說是數據庫的驅動的版本的問題,這里我使用的解決辦法是更換了下數據庫驅動的版本,換一個版本進行測試就不會有這個問題了,
開始使用的數據庫驅動的版本:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency>現在的版本:
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.8</version></dependency>?
轉載于:https://www.cnblogs.com/liaoyanglong/p/9045083.html
總結
以上是生活随笔為你收集整理的SSM框架的简单搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Docker中体验数据库之MySql
- 下一篇: Day71 分页,cookie and