1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > IDEA搭建简单的SSM(spring+springMVC+mybatis)框架

IDEA搭建简单的SSM(spring+springMVC+mybatis)框架

时间:2018-12-31 16:09:21

相关推荐

IDEA搭建简单的SSM(spring+springMVC+mybatis)框架

一直想自己搭个后台框架来玩玩,只是惰性这个东西往往占据了上风,值此新春佳节,风和日丽,艳阳高照之际,就开始自己的博客之旅吧。

首先先来了解一下SSM这三个东西!

(1)spring:是一个轻量级的java开发框架,简单来说,就是一个轻量级的IOC和AOP框架。轻量级指的是Spring框架在系统初始化时,并没有调用所有的服务,占用资源少。

(2)springMVC:一个轻量级的,基于响应请求的mvc框架。

(3)mybatis: 一个基于Java的持久层框架。它是一个不完全的ORM(对象关系映射)框架,需要程序员自己写sql,带来的好处就是sql的修改和优化比较方便。

废话不多说(主要是本人对这3块的理解不够深,怕误人子弟,等修炼完再来开题_),下面就直接上步骤了。

需要的开发环境

(1)JDK你得有吧,java程序员必备,就不说了

(2)IDEA也得有吧,现在的主流编辑器了

(3)maven,这个神器管理jar包实在是方便,现在越来越能体会到了

(4)git,这个看自己了,需要就上传到github上,方便留存

1.新建一个maven项目

很崩溃的告诉大家,csdn写博客上传图片实在是太麻烦了,要先截图,然后保存到本地,然后在上传到csdn,真是无力吐槽,我印象中csdn应该是一个大型的玩意,怎么用户体验如此之差,有没有好的写技术博客的可以推荐的?

(1)打开idea,新建一个project,左侧选择maven项目,右侧勾上create from archetype复选框,这个是用来生成固定的项目骨架的,下面列表中有很多的项目模版,我们选择maven-archetype-webapp

(2)点击下一步,输入GroupID和ArtifactId,用过maven创建项目的应该都很清楚这两个的意思了,这里就不赘述了。

这里有一点需要注意的是需要添加一个参数

(3)点击下一步,输入项目名称和项目保存目录,然后finished就创建好了。

这里需要注意的是要多配置一个参数,不然创建项目骨架的时候会很慢,

这只是其中一种解决方法,还有其他方式可以自行百度archetypeCatalog

(4)创建好的项目的src包下面是没有java目录的,我们手动建一个,我们还需要创建一些package出来,最终的目录结构大致如下,当然,大家也可以按自己熟悉的方式来建立项目目录结构

(5)之后我们需要让idea能识别到这些目录,因此需要设置一下source,resource,tests,test resource

2.编写pom文件

maven管理jar包的方式就是在pom文件中引入需要的jar包,完美解决jar依赖问题。需要用到的jar包如下:

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 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>4.11</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-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.30</version></dependency><!-- 数据库连接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</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><!-- JSON --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.7</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>

3.数据库及日志配置文件

我们需要连接数据库进行持久化操作以及日志记录

jdbc配置文件如下:

jdbc.driver=com.mysql.jdbc.Driver#数据库地址jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8#用户名jdbc.username=root#密码jdbc.password=#最大连接数c3p0.maxPoolSize=30#最小连接数c3p0.minPoolSize=10#关闭连接后不自动commitc3p0.autoCommitOnClose=false#获取连接超时时间c3p0.checkoutTimeout=10000#当获取连接失败重试次数c3p0.acquireRetryAttempts=2

日志配置文件如下:

#定义LOG输出级别log4j.rootLogger=INFO,Console,File#定义日志输出目的地为控制台log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target=System.out#可以灵活地指定日志输出格式,下面一行是指定具体的格式log4j.appender.Console.layout = org.apache.log4j.PatternLayoutlog4j.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 = ALLlog4j.appender.File.layout = org.apache.log4j.PatternLayoutlog4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

4.spring和mybatis整合

下面我们编写spring-mybatis.xml配置文件来整合spring和mybatis

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/tx/schema/tx/spring-tx.xsd"><!-- 扫描service包下所有使用注解的类型 --><context:component-scan base-package="com.virgil.service"/><!-- 配置数据库相关参数properties的属性:${url} --><context:property-placeholder location="classpath:jdbc.properties"/><!-- 数据库连接池 --><bean id="dataSource" class="com.mchange.boPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><property name="maxPoolSize" value="${c3p0.maxPoolSize}"/><property name="minPoolSize" value="${c3p0.minPoolSize}"/><property name="autoCommitOnClose" value="${c3p0.autoCommitOnClose}"/><property name="checkoutTimeout" value="${c3p0.checkoutTimeout}"/><property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/></bean><!-- 配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!-- 扫描model包 使用别名 --><property name="typeAliasesPackage" value="com.virgil.model"/><!-- 扫描sql配置文件:mapper需要的xml文件 --><property name="mapperLocations" value="classpath:mapping/*.xml"/></bean><!-- 配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 给出需要扫描Dao接口包 --><property name="basePackage" value="com.virgil.dao"/></bean><!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/></bean><!-- 配置基于注解的声明式事务 --><tx:annotation-driven transaction-manager="transactionManager"/></beans>

5.spring和springMVC整合

下面我们编写spring-mvc.xml文件来整合spring和springMVC

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd/schema/mvc/schema/mvc/spring-mvc-3.0.xsd"><!-- 扫描web相关的bean --><context:component-scan base-package="com.virgil.controller"/><!-- 开启SpringMVC注解模式 --><mvc:annotation-driven/><!-- 静态资源默认servlet配置 --><mvc:default-servlet-handler/><!-- 配置jsp 显示ViewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean></beans>

6 web.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>myssm</display-name><description>myssm_Alpha_0.0.1</description><!-- 编码过滤器 --><filter><filter-name>encodingFilter</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></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 配置DispatcherServlet --><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置springMVC需要加载的配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-*.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 形式 --><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

7 mybatis文件生成

(1)我们需要测试一下spring和mybatis的整合是否成功

首先我们需要在数据库中建立一张测试用表

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自动创建代码(包括实体类,dao层查询接口以及映射xml文件)

下载mybatis-generator-core-1.3.2的jar包,注意网上下载的好多jar包都是里面打开都是class文件,这种不是我们要的,下面这样的才是

打开lib文件夹是这样子的

其实src文件夹是自己新建的,用来接受生成的文件

generatorConfig.xml是自带的一个配置文件,我们需要去修改它,修改内容如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-////DTD MyBatis Generator Configuration 1.0//EN" "/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库驱动--> <classPathEntry location="mysql-connector-java-5.1.25-bin.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/demo" userId="root" password=""> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="domain" targetProject="src"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="mapping" targetProject="src"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="IDao" targetProject="src"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="user_t" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table></context> </generatorConfiguration>

,start.bat是自己写的处理脚本,执行生成文件的命令,内容如下:

执行完脚本之后就会在src目录下生成3个文件夹

里面分别是实体类,dao接口类,以及接口类的实现(xml文件)

将这三个文件分别拷贝到项目的如下目录下:

其中各个文件的内容如下:

User类:

package com.virgil.model;/*** Created by Administrator on /10/15 0015.*/public class User {private Integer id;private String userName;private String password;private Integer age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName == null ? null : userName.trim();}public String getPassword() {return password;}public void setPassword(String password) {this.password = password == null ? null : password.trim();}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}}

UserDao类

package com.virgil.dao;import com.virgil.model.User;import org.springframework.stereotype.Service;/*** Created by Administrator on /10/15 0015.*/public interface UserDao {int deleteByPrimaryKey(Integer id);int insert(User record);int insertSelective(User record);User selectByPrimaryKey(Integer id);int updateByPrimaryKeySelective(User record);int updateByPrimaryKey(User record);}

UserDao.xml

其实当初生成的文件名是UserMapper.xml,为了和UserDao的接口保持一致,所有就手动修改了名字。

注意,这个文件里有个坑需要注意:

namespace的值需要和对应的接口类保持一致

resultMap的type类型需要和对应的实体类保持一致

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.virgil.dao.UserDao" ><resultMap id="BaseResultMap" type="User" ><id column="id" property="id" jdbcType="INTEGER" /><result column="user_name" property="userName" jdbcType="VARCHAR" /><result column="password" property="password" jdbcType="VARCHAR" /><result column="age" property="age" jdbcType="INTEGER" /></resultMap><sql id="Base_Column_List" >id, user_name, password, age</sql><select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >select <include refid="Base_Column_List" />from user_twhere id = #{id,jdbcType=INTEGER}</select><delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >delete from user_twhere id = #{id,jdbcType=INTEGER}</delete><insert id="insert" parameterType="User" >insert into user_t (id, user_name, password, age)values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})</insert><insert id="insertSelective" parameterType="User" >insert into user_t<trim prefix="(" suffix=")" suffixOverrides="," ><if test="id != null" >id,</if><if test="userName != null" >user_name,</if><if test="password != null" >password,</if><if test="age != null" >age,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="id != null" >#{id,jdbcType=INTEGER},</if><if test="userName != null" >#{userName,jdbcType=VARCHAR},</if><if test="password != null" >#{password,jdbcType=VARCHAR},</if><if test="age != null" >#{age,jdbcType=INTEGER},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="User" >update user_t<set ><if test="userName != null" >user_name = #{userName,jdbcType=VARCHAR},</if><if test="password != null" >password = #{password,jdbcType=VARCHAR},</if><if test="age != null" >age = #{age,jdbcType=INTEGER},</if></set>where id = #{id,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="User" >update user_tset user_name = #{userName,jdbcType=VARCHAR},password = #{password,jdbcType=VARCHAR},age = #{age,jdbcType=INTEGER}where id = #{id,jdbcType=INTEGER}</update></mapper>

这里我补一个看起来更高大上一点的方法(上次写完之后一直感觉前面那个方法和项目有点脱离,所以后来用搜寻到这个方法):

(1)在pom.xml文件中配置如下:

<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile><verbose>true</verbose><overwrite>true</overwrite></configuration><executions><execution><id>Generate MyBatis Artifacts</id><goals><goal>generate</goal></goals></execution></executions><dependencies><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version><scope>runtime</scope></dependency></dependencies></plugin>

(2)在copy一个generatorConfig.xml文件放到src/main/resources/mybatis-generator下面

(3)generatorConfig.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-////DTD MyBatis Generator Configuration 1.0//EN" "/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!--<classPathEntry location="mysql-connector-java-5.1.30-bin.jar"/>--><context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/></commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/demo" userId="root" password="123"></jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <javaModelGenerator targetPackage="model" targetProject="/home/virgil/IdeaProjects/myssm/src/main/java/com.virgil"><property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="mapping" targetProject="/home/virgil/IdeaProjects/myssm/src/main/resources"><property name="enableSubPackages" value="true"/> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject="/home/virgil/IdeaProjects/myssm/src/main/java/com.virgil"><property name="enableSubPackages" value="true"/> </javaClientGenerator> <table tableName="user_t" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table></context> </generatorConfiguration>

(4)直接双击idea的该出运行即可:

网上盗的图ubuntu下没装截图工具

8.测试mybatis和spring的融合

在test目录下新建测试文件

testMybatis的内容如下:

import com.alibaba.fastjson.JSON;import com.virgil.model.User;import com.virgil.service.IUserService;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 javax.annotation.Resource;/*** Created by Administrator on /10/14 0014.*/@RunWith(SpringJUnit4ClassRunner.class)//表示继承了SpringJUnit4ClassRunner类@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})public class testMybatis {private static Logger logger = Logger.getLogger(testMybatis.class);@Resourceprivate IUserService userService = null;@Testpublic void test1() {User user = userService.selectUser(1);logger.info(JSON.toJSONString(user));}}

IUserService.java

package com.virgil.service;import com.virgil.model.User;/*** Created by Administrator on /10/15 0015.*/public interface IUserService {public User selectUser(int userId);}

UserServiceImpl.java文件

package com.virgil.service.impl;import com.virgil.dao.UserDao;import com.virgil.model.User;import com.virgil.service.IUserService;import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** Created by Administrator on /10/15 0015.*/@Service("userService")public class UserServiceImpl implements IUserService {@Resourceprivate UserDao userDao;public User selectUser(int userId) {return this.userDao.selectByPrimaryKey(userId);}}

执行测试文件:

效果如下:

这样子就表示测试成功啦!

9.测试spring和springMVC的融合效果

index.jsp文件如下:

<%--Created by IntelliJ IDEA.User: AdministratorDate: /10/15 0015Time: 12:13To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><html><head><meta charset="UTF-8"><title>test</title></head><script>function selectUser() {var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function () {if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {document.getElementById("test").innerHTML = xmlhttp.responseText;}}xmlhttp.open("POST", "user/showUserById.do", true);xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xmlhttp.send("id=1");}</script><body><p id="test">Hello World!</p><button type="button" onclick="selectUser()">onclick test</button></body></html>

controller类如下:

package com.virgil.controller;import com.fasterxml.jackson.databind.ObjectMapper;import com.virgil.model.User;import com.virgil.service.IUserService;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/*** Created by Administrator on /10/15 0015.*/@Controller@RequestMapping("/user")public class UserController {@Resourceprivate IUserService userService;@RequestMapping("/showUserById.do")public void selectUser(HttpServletRequest request, HttpServletResponse response) throws IOException {request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");int userId = Integer.parseInt(request.getParameter("id"));User user = this.userService.selectUser(userId);ObjectMapper mapper = new ObjectMapper();response.getWriter().write(mapper.writeValueAsString(user));response.getWriter().close();}}

然后部署项目并启动………..over

10.项目上传github保存

首先你得有个github的帐号,没有就先注册

然后你得安装git,安装完成后打开gitbash

配置两项参数:

git config –global user.name “xxxxx”

git config –global user.email “xxxxxxxxxx”

接下来我们就可以直接用idea来完成所有的工作了

我们先用idea连上github,点击那个createAPIToken生成token

创建一个Create git Respository,选择你得项目

这是你得项目的所有文件颜色应该都还是红色的,这时我们选中项目,然后右键–git–add

这是所有的文件应该都变成绿色了

然后我们在commit directory

这是整个项目就提交到本地仓库了

最后我们需要push到github上面就可以了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。