1.在上篇博客里讲述了spring+mybatis的整合,这边在上篇的基础上进行开发。

  上篇博客链接http://www.cnblogs.com/huangyichun/p/6149946.html

2.项目总体架构

  

  (1)首先修改build.gradle文件,添加springmvc的依赖

    

group 'com.huang'
version '1.0-SNAPSHOT' apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'idea' sourceCompatibility = 1.5 repositories {
maven { url 'http://maven.springframework.org/release' }
maven { url 'http://maven.springframework.org/milestone' }
maven { url 'http://maven.springframework.org/snapshot' }
maven { url 'http://download.java.net/maven/2' }
mavenCentral()
} dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
testCompile"org.springframework:spring-test:${springVersion}"
testCompile "com.github.stefanbirkner:system-rules:${systemRulesVersion}"
compile "org.springframework:spring-core:$springVersion"
compile "org.springframework:spring-context:$springVersion"
compile "org.springframework:spring-jdbc:$springVersion"
compile "org.mybatis:mybatis:$mybatisVersion"
compile "org.mybatis:mybatis-spring:$mybatis_spring"
compile "commons-dbcp:commons-dbcp:$commons_dbcp"
compile "mysql:mysql-connector-java:$mysql_Java"
compile "log4j:log4j:$log4jVersion"
compile "com.h2database:h2:$h2Version"
compile "javax.inject:javax.inject:1"
compile "net.sf.ehcache:ehcache:$ehcacheVersion"
compile "net.sf.ehcache:ehcache-jcache:$ehcacheJCacheVersion"
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21'
compile "org.springframework:spring-webmvc:$springVersion"
compile "org.apache.commons:commons-lang3:$commonsLangVersion"
compile "javax.servlet:jstl:$jstlVersion"
providedCompile "javax.servlet:javax.servlet-api:$servletApiVersion"
providedCompile "javax.servlet.jsp:jsp-api:$jspApiVersion"
providedCompile "javax.el:javax.el-api:$jspElVersion"
// https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.21' }

  (2)添加配置文件,采用javaconfig

  

  直接上代码:

  

package com.huang.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.config.annotation.EnableWebMvc; /**
* ComponentScan的属性
  basePackageClasses:对basepackages()指定扫描注释组件包类型安全的替代。
excludeFilters:指定不适合组件扫描的类型。
includeFilters:指定哪些类型有资格用于组件扫描。
lazyInit:指定是否应注册扫描的beans为lazy初始化。
nameGenerator:用于在Spring容器中的检测到的组件命名。
resourcePattern:控制可用于组件检测的类文件。
scopedProxy:指出代理是否应该对检测元件产生,在使用过程中会在代理风格时尚的范围是必要的。
scopeResolver:用于解决检测到的组件的范围。
useDefaultFilters:指示是否自动检测类的注释 @Component@Repository, @Service, or @Controller 应启用。
value:basePackages()别名
*/
@Configuration
@ComponentScan(basePackages = {"com.huang.service"},
excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)})
@Import(DataConfig.class)
public class RootConfig {
}
package com.huang.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration
@EnableWebMvc
@ComponentScan("com.huang.controller")
public class WebConfig extends WebMvcConfigurerAdapter{ //配置jsp视图
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
} //配置静态资源处理
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();//将静态资源的请求转发到servlet容器中默认的servlet上
}
}
package com.huang.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{RootConfig.class};
} protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{WebConfig.class};
} protected String[] getServletMappings() {
return new String[]{"/"};
}
}

  (3)编写service层代码

    

package com.huang.service;

import com.huang.domain.User;
import java.util.List; public interface UserService { List<User> getUserList(); User getUserById(String userId); void updateUserEmailById(String userId, String sex); void deleteUserById(String userId); void insertUser(User user);
}
package com.huang.service.impl;

import com.huang.domain.User;
import com.huang.mapper.UserMapper;
import com.huang.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List;
@Service
public class UserServiceImpl implements UserService { @Autowired
UserMapper userMapper;
public List<User> getUserList() {
List<User> list = userMapper.getUserList();
return list;
} public User getUserById(String userId) {
return userMapper.getUserById(userId);
} public void updateUserEmailById(String userId, String sex) {
userMapper.updateUserEmailById(userId, sex);
} public void deleteUserById(String userId) {
userMapper.deleteUserById(userId);
} public void insertUser(User user) {
userMapper.insertUser(user);
}
}

    

  (4)编写controller层代码 

package com.huang.controller;

import com.huang.domain.User;
import com.huang.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import java.util.List; @Controller
public class UserController { @Autowired
private UserService userService; @RequestMapping(value = "/getAllUser", method = RequestMethod.GET)
public String getUserList(Model model){
List<User> list = userService.getUserList();
model.addAttribute("list",list);
return "showUsers";
} }

  (5)修改index.jsp代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<a href="/getAllUser">获取所有的user</a>
</body>
</html>

  

  (6)在WEB-INF下的views创建showUsers.jsp

  

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>显示所有的用户</title>
</head>
<body>
<form>
<table >
<c:forEach var="user" items="${list}">
<tr>
<td>${user.userId}</td>
<td>${user.name}</td>
<td>${user.depId}</td>
<td>${user.sex}</td>
</tr>
</c:forEach>
</table>
</form> </body>
</html>

 

   (7)启动tomcat,打开index.jsp页面,点击链接显示:

使用IDEA的gradle整合spring+springmvc+mybatis 采用javaconfig配置的更多相关文章

  1. 使用maven整合spring+springmvc+mybatis

    使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...

  2. maven项目快速搭建SSM框架(一)创建maven项目,SSM框架整合,Spring+Springmvc+Mybatis

    首先了解服务器开发的三层架构,分配相应的任务,这样就能明确目标,根据相应的需求去编写相应的操作. 服务器开发,大致分为三层,分别是: 表现层 业务层 持久层 我们用到的框架分别是Spring+Spri ...

  3. eclipse整合spring+springMVC+Mybatis

    一.新建Maven项目 点击菜单栏File项,选择New->Project,选中Maven Project,如下图: 二.配置pom.xml <?xml version="1.0 ...

  4. SSM框架整合(Spring+SpringMVC+Mybatis)

    第一步:创建maven项目并完善项目结构  第二步:相关配置 pom.xml 引入相关jar包 1 <properties> 2 <project.build.sourceEncod ...

  5. shiro与Web项目整合-Spring+SpringMVC+Mybatis+Shiro(八)

    Jar包

  6. 整合spring+springmvc+mybatis

    开发环境: jdk 1.8 eclipse 4.7.0 (Oxygen) tomcat 8.5.29 mysql 5.7 开发前准备: spring 框架的jar包,在这里使用的是spring-5.0 ...

  7. 使用IDEA的gradle整合spring+ mybatis 采用javaconfig配置

    1.新建一个工程 2.工程目录 3.添加gradle.propertes文件 activeMQVersion=5.7.0 aspectJVersion=1.7.2 commonsLangVersion ...

  8. Maven+spring+springMVC+mybatis+Junit+Log4j配置个人总结

          首先粘贴上项目引用地址:http://doc.okbase.net/fengshizty/archive/126397.html 这里对创建步骤不做过多解释,只是针对案例创建demo的一些 ...

  9. Spring+SpringMVC+MyBatis+easyUI整合

    进阶篇 Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API 优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化 ...

随机推荐

  1. 选择法排序 vb.net

    Imports System.ThreadingModule Module1    Sub Main()        'test code        'Dim a, b As Integer   ...

  2. 开源半成品的Web版工作流模板设计器(基于AngularJS 2和Redux), 还在继续填坑中

    先上个图: 很多企业内部的应用都需要有个工作流平台(插件),无奈灵活方便好用且能够自行更改代码定制嵌入的实在不多,只好自己动手慢慢搞. https://github.com/shibamo/99-fl ...

  3. css3弹性盒子模型——回顾。

    1.box-flex属性规定框的子元素是否可伸缩其尺寸. 父元素必须要声明display:box;子元素才可以用box-flex. 语法:box-flex:value; 示例: <style&g ...

  4. 蓝桥网试题 java 基础练习 01字串

    ---------------------------------------------------------------------- 还括以 0.0 --------------------- ...

  5. Salesforce的Auto Number

    在Salesforce中新建Object的时候,可以对Name选择Auto Number,即自动编号.如果没有仔细阅读说明的话,会有一个很容易让人迷惑的地方. 在选择时候,Salesforce提供的示 ...

  6. wap网页、微信内嵌网页在手机端页面窗口尺寸如何不缩放

    如何让wap网页.微信内嵌网页内容(尺寸和文字)在手机端页面窗口尺寸不被强制缩放 在head中加入: <meta http-equiv="Content-Type" cont ...

  7. TCP/IP 协议族的简介

    TCP/IP重要的特性就是分层.TCP/IP 按照层次分为四层:应用层.传输层.网络层.数据链路层.分层的好处就是当某些地方需要改变的时候,只需要将改变的层替换掉即可,而不用去把整体做替换.各层之间的 ...

  8. Cesium原理篇:glTF

    关键字:Cesium glTF WebGL技术 大纲: 1 glTF简介,这是一个什么东西,有哪些特点 2 Cesium如何加载,渲染glTF,逻辑结构和关键技术 3 个人总结,从glTF学习如何设计 ...

  9. JS冒号的作用

    JS中冒号的作用1.声明对象的成员2.switch语句分支3.三元表达式 1.声明对象的成员 var Book = { Name: '法', Price: 100, Discount : functi ...

  10. 《经久不衰的Spring框架:@ResponseBody 中文乱码》

    问题背景 本文并不是介绍@ResponseBody注解,也不是中文乱码问题的大汇总笔记,这些网上都有很多内容了.这边仅对几年前,一个卡壳了挺久时间的问题的解决过程做一个记录,以警惕自己,达到自醒得目的 ...