欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建

Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建

2025/2/5 23:04:44 来源:https://blog.csdn.net/2501_90404886/article/details/145385043  浏览:    关键词:Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建

7.4、spring配置文件application.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"xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><!-- 引入jdbc配置文件 -->  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:properties/*.properties</value><!--要是有多个配置文件,只需在这里继续添加即可 --></list></property></bean><!-- 配置数据源 --><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><!-- 不使用properties来配置 --><!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/learning" /> <property name="username" value="root" /> <property name="password" value="christmas258@" /> --><!-- 使用properties来配置 --><property name="driverClassName"><value>${jdbc_driverClassName}</value></property><property name="url"><value>${jdbc_url}</value></property><property name="username"><value>${jdbc_username}</value></property><property name="password"><value>${jdbc_password}</value></property></bean><!-- 自动扫描了所有的XxxxMapper.xml对应的mapper接口文件,这样就不用一个一个手动配置Mpper的映射了,只要Mapper接口类和Mapper映射文件对应起来就可以了。 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage"value="com.luo.dao" /></bean><!-- 配置Mybatis的文件 ,mapperLocations配置\*\*Mapper.xml文件位置,configLocation配置mybatis-config文件位置--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mapperLocations" value="classpath:mapper/\*.xml"/>  <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" /><!-- <property name="typeAliasesPackage" value="com.tiantian.ckeditor.model" /> --></bean><!-- 自动扫描注解的bean --><context:component-scan base-package="com.luo.service" /></beans>

8、接口和类的配置:

这里写图片描述

8.1、com.luo.domain下添加User.java文件:

package com.luo.domain;public class User {private Integer userId;  private String userName;  private String userPassword;  public Integer getUserId() {  return userId;  }  public void setUserId(Integer userId) {  this.userId = userId;  }  public String getUserName() {  return userName;  }  public void setUserName(String userName) {  this.userName = userName;  }  public String getUserPassword() {  return userPassword;  }  public void setUserPassword(String userPassword) {  this.userPassword = userPassword;  }  }

8.2、com.luo.dao下添加UserDao.java文件:

package com.luo.dao;import com.luo.domain.User;public interface UserDao {/\*\*\* @param userId\* @return User\*/public User selectUserById(Integer userId);  }

8.3、com.luo.service下添加UserService.java接口和UserServiceImpl实现类:

package com.luo.service;import com.luo.domain.User;public interface UserService {User selectUserById(Integer userId); 
}
package com.luo.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.luo.dao.UserDao;
import com.luo.domain.User;@Service  
public class UserServiceImpl implements UserService {@Autowired  private UserDao userDao;  public User selectUserById(Integer userId) {  return userDao.selectUserById(userId);  }  
}

9、单元测试

这里写图片描述

9.1、com.luo.baseTest下添加SpringTestCase.java:

package com.luo.baseTest;import org.junit.runner.RunWith;  
import org.springframework.test.context.ContextConfiguration;  
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;  
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  //指定bean注入的配置文件 
@ContextConfiguration(locations = { "classpath:application.xml" })  
//使用标准的JUnit @RunWith注释来告诉JUnit使用Spring TestRunner 
@RunWith(SpringJUnit4ClassRunner.class)  
public class SpringTestCase extends AbstractJUnit4SpringContextTests {}

9.2、com.luo.service添加UserServiceTest.java:

package com.luo.service;import org.junit.Test;  
import org.springframework.beans.factory.annotation.Autowired;  
import com.luo.baseTest.SpringTestCase;  
import com.luo.domain.User;public class UserServiceTest extends SpringTestCase {@Autowired  private UserService userService; @Test  public void selectUserByIdTest(){  User user = userService.selectUserById(1);  System.out.println(user.getUserName() + ":" + user.getUserPassword());}  
}

9.3、运行单元测试,UserServiceTest右键Run As –>Junit Test,运行结果:

这里写图片描述


下面加入springmvc,并转换maven工程为web项目


10、转换成web项目:

如果上面webapp为空的,说明这个项目还不是web项目:

这里写图片描述

接下来打开如下页面。将红框里面的勾去掉,确定(OK):

这里写图片描述

然后重新打开刚刚那个页面,把Dynamic web Module勾上,就会看到红框的内容,点击:

这里写图片描述

然后配置如下:

这里写图片描述

那么webapp下就会生成这些东西:

这里写图片描述

11、配置springmvc

11.1、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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.luo</groupId><artifactId>first_maven_project</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><properties><!-- spring版本号 --><spring.version>3.2.8.RELEASE</spring.version><!-- junit版本号 --><junit.version>4.10</junit.version><!-- mybatis版本号 --><mybatis.version>3.2.1</mybatis.version></properties><dependencies><!-- 添加Spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</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-context</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-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-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-web</artifactId><version>${spring.version}</version></dependency><!--单元测试依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!--spring单元测试依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope></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.0</version></dependency><!-- mysql驱动包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.29</version></dependency><!-- javaee-api包 注意和项目使用的JDK版本对应 -->  <dependency>  <groupId>javax</groupId>  <artifactId>javaee-api</artifactId>  <version>6.0</version>  <scope>provided</scope>  </dependency>  <!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->  <dependency>  <groupId>javax</groupId>  <artifactId>javaee-web-api</artifactId>  <version>6.0</version>  <scope>provided</scope>  </dependency>  </dependencies></project>

其实也就增加了下面两个

<!-- javaee-api包 注意和项目使用的JDK版本对应 -->
<dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>6.0</version><scope>provided</scope>
</dependency><!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->
<dependency><groupId>javax</groupId><artifactId>javaee-web-api</artifactId><version>6.0</version><scope>provided</scope>
</dependency>

11.2、在src/main/resource中添加springmvc文件夹,然后添加文件spring-mvc.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"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-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"><mvc:annotation-driven /> <!-- 扫描controller(controller层注入) --><context:component-scan base-package="com.luo.controller"/>  <!-- 对模型视图添加前后缀 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/WEB-INF/view/" p:suffix=".jsp"/>
</beans>

11.3、配置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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app\_2\_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app\_2\_5.xsd"id="WebApp\_ID" version="2.5"><display-name>Archetype Created Web Application</display-name><!-- 起始欢迎界面 --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 读取spring配置文件 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:application.xml</param-value></context-param><!-- 设计路径变量值 --><context-param><param-name>webAppRootKey</param-name><param-value>springmvc.root</param-value></context-param><!-- Spring字符集过滤器 --><filter><filter-name>SpringEncodingFilter</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><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>SpringEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- springMVC核心配置 --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!--spingMVC的配置路径 --><param-value>classpath:springmvc/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- 拦截设置 --><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 错误跳转页面 --><error-page><!-- 路径不正确 --><error-code>404</error-code><location>/WEB-INF/errorpage/404.jsp</location></error-page><error-page><!-- 没有访问权限,访问被禁止 --><error-code>405</error-code><location>/WEB-INF/errorpage/405.jsp</location></error-page><error-page><!-- 内部错误 --><error-code>500</error-code><location>/WEB-INF/errorpage/500.jsp</location></error-page>
</web-app>

11.4、添加index.jsp,在src/main/webapp/WEB-INF下新建一个文件夹view,添加一个index.jsp,内容如下:

这里写图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<body>
<h2>Hello World!</h2>
用户名: ${user.userName}<br>密码:${user.userPassword}<br>
</body>
</html>

11.5、写controller

这里写图片描述

在src/main/java下新建一个包com.luo.controller.然后新建一个类UserController.java,其内容如下

package com.luo.controller;import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.luo.domain.User;
import com.luo.service.UserService;@Controller  
public class UserController {  @Resource  private UserService userService; @RequestMapping("/")    public ModelAndView getIndex(){      ModelAndView mav = new ModelAndView("index"); User user = userService.selectUserById(1); mav.addObject("user", user); return mav; }    
}  

11.6 运行!!!!完成!

这里写图片描述

12、源码下载

http://download.csdn.net/detail/u013142781/9376381

13、可能会遇到的错

之前有个兄弟按照我的配置,但是发现pom.xml文件报如下错误:

Cannot detect Web Project version. Please specify version of Web Project through <version> configuration property of war plugin. E.g.: <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <version>3.0<ersion> </configuration> </plugin>

解决方案是,如下的三个地方jdk版本需要保持一致:

1、项目右键->属性->Java Compiler:

这里写图片描述

2、项目右键->属性->Project Facets:

这里写图片描述

3、如果pom.xml配置了如下的插件的话:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com