Spring + Springmvc + Mabatis环境搭建

1.下载JDK 8:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 
环境变量
JAVA_HOME:D:\ Program Files \ Java \ jdk1.8.0_91 
PATH:% JAVA_HOME%\ bin;%JAVA_HOME%\ jre \ bin; 
2.下载maven:http://maven.apache.org/download.cgi 
环境变量
MAVEN_HOME:D:\ 20160706 \ apache-maven-3.3.9 
PATH:%MAVEN_HOME%\ bin; 
cmd - > mvn -version 
Maven数据仓库配置:
D:\ 20160706 \ apache-maven-3.3.9 \ conf - > settings.xml 
接触注释localRepository标签,配置路径:D:\ 20160706 \ maven-repository \ maven-jar 
cp settings.xml到D:\ 20160706 \ maven-repository \ 

3. 
下载Eclipse IDE:http://www.eclipse.org/downloads/eclipse-packages/ 下载Tomcat:http://tomcat.apache.org/download -80.cgi#8.0.36 
窗口 - >首选项 - >服务器 - >运行环境 - >添加 - > Apache Tomcat v8.0 - > Tomcat安装目录:D:\ 20160706 \ apache-tomcat-8.0.36,JRE: jre1.8.0_91 
窗口 - >首选项 - > Maven - >安装 - >添加 - >目录:D:\ 20160706 \ apache-maven-3.3.9 
窗口 - >首选项 - > Maven - >用户设置:D:\ 20160706 \ maven-repository \ settings.xml 
6.SVN插件安装
帮助 - > Eclipse Marketplace - >查找:subclipse - >安装
窗口 - >显示视图 - >其他 - > SVN资源库:右键新建资源库位置,输入服务器地址
7。 Java代码提示
窗口 - >首选项 - > Java - >编辑器 - >内容辅助:Java的自动激活触发器:.abcdefghijklmnopqrstuvwxyz,delay(ms):200 
8.新建maven项目
- > Maven项目 - > maven-archetype- - > Artifact Id:项目名称,组ID:com.trav,包:空 - >完成
右键项目trav - >属性 - >资源 - >文本文件编码:UTF-8
  - > Java构建路径:库 - > JRE编辑:Workspace默认JRE(1.8.0_91)
index.jsp报错,我们需要引入java ee的jar包即可。在pom.xml中引入:
<! - 导入java ee jar包 - >   
        <dependency>   
            <groupId> javax </ groupId>   
            <artifactId> javaee-api </ artifactId>   
            <version> 7.0 </ version>   
        </ dependency> 

web项目配置jstl等:trav - >属性 - >项目构面:

// Dynamic Web Module 3.1(右键项目--Maven-Update Project,再改为3.1就可以了或打开项目下的.setting \ org.eclipse.wst.common.project.facet.core.xml,手动修改<installed facet =“jst.web”version =“2.5”/>重启tomcatX就可以正常使用)
- > Java 1.8 
9.SSM整合
9.1 Maven引入需要的JAR包,pom.xml:
<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.trav </ groupId>
<artifactId> trav </ artifactId>
<packaging> war </ packaging>
<version> 0.0.1-SNAPSHOT </ version>
<name> trav Maven Webapp </ name>
<url> http://maven.apache.org </ url>
<properties>
<! - spring versionumber号 - >
<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> 4.11 </ version>
<! - 表示开发的时候引入,发布的时候不会加载此包 - >
<scope>测试</ 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>
<dependency>
<groupId> org.mybatis </ groupId>
<artifactId> mybatis </ artifactId>
<version> $ {mybatis.version} </ version>
</ dependency>
<dependency>
<groupId> org.mybatis </ groupId>
<artifactId> mybatis-spring </ artifactId>
<version> 1.2.2 </ version>
</ dependency>
<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.30 </ 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>
</ dependencies>
<build>
<finalName> trav </ finalName>
</ build> 
</ project> 

9.2 Spring与MyBatis的整合
9.2.1建立JDBC属性文件src / main / resources / db.properties(文件编译修改为utf-8)
driver = com.mysql.jdbc.Driver 
url = JDBC的:mysql://127.0.0.1:3306 / TRAV 
用户名=根
密码= 928606 
#定义初始连接数
INITIALSIZE = 0 
#定义最大连接数
maxActive = 20 
#定义最大空闲
了maxidle = 20 
#定义最小空闲
minIdle = 1 
#定义最大等待时间
maxWait = 60000 

9.2.2建立spring-mybatis.xml配置文件src / main / resources / 
<?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.cn.hnust”/>
<! - 引入配置文件 - >
<bean id =“propertyConfigurer”
class =“org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>
<property name =“location”value =“classpath:db.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 / cn / hnust / mapping / *。xml”> </ property>
</ bean>
<! - DAO接口所在包名,Spring会自动查找其下的类 - >
<bean class =“org.mybatis.spring.mapper.MapperScannerConfigurer”>
<property name =“basePackage”value =“com.cn.hnust.dao”/>
<property name =“sqlSessionFactoryBeanName”value =“sqlSessionFactory”> </ property>
</ bean>
<! - (事务管理)事务管理器,使用JtaTransactionManager为全局tx - >
<bean id =“transactionManager”
class =“org.springframework.jdbc.datasource.DataSourceTransactionManager”>
<property name =“dataSource”ref =“dataSource”/>
</ bean> 
</ beans>

9.2.3 Log4j的配置src / main / resources / 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 
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.DatePattern ='。'yyyy-MM-dd 
log4j.appender。 file.File = logs / webapp.log 
log4j.appender.file.Append = true 
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

使用详解:HTTP://blog.csdn .NET / xuliuzhu /条/信息/ 51925800

###

log4j.rootLogger = INFO,控制台,文件

#定义日志输出目的地为控制台
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 

9.2.4 JUnit测试
数据库中建立一个测试表,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;  
/ *表的数据'user_t` * /   
insert into`user_t`(`id`,`user_name`,`password`,`age`)values(1,'测试','sfasgfaf',24)  

9.2.5使用Mybatis Generator自动创建代码
mkdir D:\ 20160706 \ mybatis-generator-core-1.3.2 \ lib 
下载mybatis-generator-core:http://grepcode.com/snapshot/repo1.maven.org/maven2 /org.mybatis.generator/mybatis-generator-core/1.3.2 
cp mysql-connector-java-5.1.30.jar和mybatis-3.2.7.jar到lib 
新的src文件夹
new generator-config.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>
<! - 数据库驱动 - >
<classPathEntry location =“mysql-connector-java-5.1.30.jar”/>
<context id =“DB2Tables”targetRuntime =“MyBatis3”>
<commentGenerator>
<property name =“suppressDate”value =“true”/>
<! - 是否去除自动生成的注释true:是:false:否 - >
<property name =“suppressAllComments”value =“true”/>
</ commentGenerator>
<! - 数据库链接URL,用户名,密码 - >
<jdbcConnection driverClass =“com.mysql.jdbc.Driver”
connectionURL =“jdbc:mysql://127.0.0.1:3306 / trav”userId =“root”
password =“928606”>
</ jdbcConnection>
<javaTypeResolver>
<property name =“forceBigDecimals”value =“false”/>
</ javaTypeResolver>
<! - 生成模型的包名和位置 - >
<javaModelGenerator targetPackage =“com.cn.hnust.pojo”
targetProject =“src”>
<property name =“enableSubPackages”value =“true”/>
<property name =“trimStrings”value =“true”/>
</ javaModelGenerator>
<! - 生成映射文件的包名和位置 - >
<sqlMapGenerator targetPackage =“com.cn.hnust.mapping”
targetProject =“src”>
<property name =“enableSubPackages”value =“true”/>
</ sqlMapGenerator>
<! - 生成DAO的包名和位置 - >
<javaClientGenerator type =“XMLMAPPER”
targetPackage =“com.cn.hnust.dao”targetProject =“src”>
<property name =“enableSubPackages”value =“true”/>
</ javaClientGenerator>
<! - 要生成的表名是数据库中的表名或视图名domainObjectName是实体类名 - >
<table tableName =“user_t”domainObjectName =“User”
enableCountByExample =“false”enableUpdateByExample =“false”
enableDeleteByExample =“false”enableSelectByExample =“false”
selectByExampleQueryId =“false”> </ table>
</ context> 
</ generatorConfiguration> 

cmd D:
cd D:\ 20160706 \ mybatis-generator-core-1.3.2 \ lib 
java -jar mybatis-generator-core-1.3.2.jar -configfile generator-config.xml - overwrite 
9.2.6建立测试类
测试类在src / test / java中建立,下面测试类中注射掉的部分是不使用Spring时,一般情况下的一种测试方法;如果使用了Spring那么就可以使用的方法来引入配置文件和类,然后再将服务接口对象注入,就可以进行测试了。
       如果测试成功,表示Spring和Mybatis已经整合成功了。输出信息使用的是Log4j打印到控制台
。 cn.hnust.service; 
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.alibaba.fastjson.JSON; 
import com.cn.hnust.pojo.User; 
import com.cn.hnust.service.IUserService; 
//表示继承了SpringJUnit4ClassRunner类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {“classpath:spring-mybatis.xml”})
public class IUserServiceTest {
private static Logger logger = Logger.getLogger(IUserServiceTest.class);
// private ApplicationContext ac = null;
@Resource
private IUserService userService = null;
//@之前
// public void before(){
// ac = new ClassPathXmlApplicationContext(“applicationContext.xml”); //不使用Spring测试 
// userService =(IUserService)ac.getBean(“userService”);
//}
@测试
public void testGetUserById(){
用户user = userService.getUserById(1);
logger.info(“user:”+ JSON.toJSONString(user));


9.3整合SpringMVC上面
已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合
9.3.1配置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”
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.cn.hnust.controller”/>

<! - 避免IE执行AJAX时,返回JSON出现下载文件 - >
<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”>
<! - 这里的配置我的理解是自动给后面动作的方法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>

9.3.2配置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监听器 - >
<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>
<! - this处可以可以配置成* .do,对应struts的后缀习惯 - >
<url-pattern> / </ url-pattern>
</ servlet-mapping>
<welcome-file-list>
<welcome-file> /index.jsp </ welcome-file>
</ welcome-file-list> 
</ web-app> 
9.3.3测试
新建页面:webapp / WEB-INF / jsp / show-user.jsp 
<%@ page language =“java”import =“java.util。 *“pageEncoding =”utf-8“%> 
<!DOCTYPE HTML PUBLIC” - // W3C // DTD HTML 4.01 Transitional // EN“> 
<html> 
<head 

</ head> 
<body> $ {user.userName} 
</ body> 
</ html> 
UserController.java控制器
包com.cn.hnust.controller; 
import javax.annotation.Resource; 
import javax.servlet.http.HttpServletRequest; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 
import com.cn.hnust.service.IUserService; 
@Controller 
@RequestMapping(“/ user”)
public class UserController {
@Resource
private IUserService userService;
@RequestMapping(“/ showUser”)
public String toIndex(HttpServletRequest request,Model model){
int userId = Integer.parseInt(request.getParameter(“id”));
model.addAttribute(“user”,userService.getUserById(userId));
return“show-user”;


部署项目,输入地址:localhost:8080 / trav / user / showUser?id = 1 
Eclipse报错:java.lang.ClassNotFoundException:ContextLoaderListener 
错误原因:
进入tomcat的部署路径.metadata \ .plugins \ org.eclipse。 wst.server.core \ tmp0 \ wtpwebapps \下检查了一下,发现工程部署后在WEB-INF文件夹下没有生成lib目录,正常情况下,会生成lib目录并把工程的所有依赖jar包都部署到该目录下。
解决方案:
1.右键点击项目 - 选择属性
选择部署程序集,在右边点击添加按钮,在弹出的窗口中选择Java构建路径条目。
点击下一步,选择Maven依赖
点击完成,然后可以看到已经把Maven依赖添加到Web应用结构中了
重新部署工程,不再报错了。然后我们再到.metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \目录下,发现工程WEB -INF目录下自动生成了lib目录,并且所有的依赖jar包也都已经部署进来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值