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

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

2.项目总体架构

  

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

    

  1. group 'com.huang'
  2. version '1.0-SNAPSHOT'
  3.  
  4. apply plugin: 'java'
  5. apply plugin: 'war'
  6. apply plugin: 'eclipse'
  7. apply plugin: 'idea'
  8.  
  9. sourceCompatibility = 1.5
  10.  
  11. repositories {
  12. maven { url 'http://maven.springframework.org/release' }
  13. maven { url 'http://maven.springframework.org/milestone' }
  14. maven { url 'http://maven.springframework.org/snapshot' }
  15. maven { url 'http://download.java.net/maven/2' }
  16. mavenCentral()
  17. }
  18.  
  19. dependencies {
  20. testCompile group: 'junit', name: 'junit', version: '4.12'
  21. testCompile"org.springframework:spring-test:${springVersion}"
  22. testCompile "com.github.stefanbirkner:system-rules:${systemRulesVersion}"
  23. compile "org.springframework:spring-core:$springVersion"
  24. compile "org.springframework:spring-context:$springVersion"
  25. compile "org.springframework:spring-jdbc:$springVersion"
  26. compile "org.mybatis:mybatis:$mybatisVersion"
  27. compile "org.mybatis:mybatis-spring:$mybatis_spring"
  28. compile "commons-dbcp:commons-dbcp:$commons_dbcp"
  29. compile "mysql:mysql-connector-java:$mysql_Java"
  30. compile "log4j:log4j:$log4jVersion"
  31. compile "com.h2database:h2:$h2Version"
  32. compile "javax.inject:javax.inject:1"
  33. compile "net.sf.ehcache:ehcache:$ehcacheVersion"
  34. compile "net.sf.ehcache:ehcache-jcache:$ehcacheJCacheVersion"
  35. compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21'
  36. compile "org.springframework:spring-webmvc:$springVersion"
  37. compile "org.apache.commons:commons-lang3:$commonsLangVersion"
  38. compile "javax.servlet:jstl:$jstlVersion"
  39. providedCompile "javax.servlet:javax.servlet-api:$servletApiVersion"
  40. providedCompile "javax.servlet.jsp:jsp-api:$jspApiVersion"
  41. providedCompile "javax.el:javax.el-api:$jspElVersion"
  42. // https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12
  43. compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.21'
  44.  
  45. }

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

  

  直接上代码:

  

  1. package com.huang.config;
  2.  
  3. import org.springframework.context.annotation.ComponentScan;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.context.annotation.FilterType;
  6. import org.springframework.context.annotation.Import;
  7. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  8.  
  9. /**
  10. * ComponentScan的属性
      basePackageClasses:对basepackages()指定扫描注释组件包类型安全的替代。
  11. excludeFilters:指定不适合组件扫描的类型。
  12. includeFilters:指定哪些类型有资格用于组件扫描。
  13. lazyInit:指定是否应注册扫描的beans为lazy初始化。
  14. nameGenerator:用于在Spring容器中的检测到的组件命名。
  15. resourcePattern:控制可用于组件检测的类文件。
  16. scopedProxy:指出代理是否应该对检测元件产生,在使用过程中会在代理风格时尚的范围是必要的。
  17. scopeResolver:用于解决检测到的组件的范围。
  18. useDefaultFilters:指示是否自动检测类的注释 @Component@Repository, @Service, or @Controller 应启用。
  19. value:basePackages()别名
  20. */
  21. @Configuration
  22. @ComponentScan(basePackages = {"com.huang.service"},
  23. excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)})
  24. @Import(DataConfig.class)
  25. public class RootConfig {
  26. }
  1. package com.huang.config;
  2.  
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.ComponentScan;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.web.servlet.ViewResolver;
  7. import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
  8. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  9. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  10. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  11.  
  12. @Configuration
  13. @EnableWebMvc
  14. @ComponentScan("com.huang.controller")
  15. public class WebConfig extends WebMvcConfigurerAdapter{
  16.  
  17. //配置jsp视图
  18. @Bean
  19. public ViewResolver viewResolver(){
  20. InternalResourceViewResolver resolver = new InternalResourceViewResolver();
  21. resolver.setPrefix("/WEB-INF/views/");
  22. resolver.setSuffix(".jsp");
  23. resolver.setExposeContextBeansAsAttributes(true);
  24. return resolver;
  25. }
  26.  
  27. //配置静态资源处理
  28. @Override
  29. public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
  30. configurer.enable();//将静态资源的请求转发到servlet容器中默认的servlet上
  31. }
  32. }
  1. package com.huang.config;
  2.  
  3. import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
  4.  
  5. public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  6.  
  7. protected Class<?>[] getRootConfigClasses() {
  8. return new Class<?>[]{RootConfig.class};
  9. }
  10.  
  11. protected Class<?>[] getServletConfigClasses() {
  12. return new Class<?>[]{WebConfig.class};
  13. }
  14.  
  15. protected String[] getServletMappings() {
  16. return new String[]{"/"};
  17. }
  18. }

  (3)编写service层代码

    

  1. package com.huang.service;
  2.  
  3. import com.huang.domain.User;
  4. import java.util.List;
  5.  
  6. public interface UserService {
  7.  
  8. List<User> getUserList();
  9.  
  10. User getUserById(String userId);
  11.  
  12. void updateUserEmailById(String userId, String sex);
  13.  
  14. void deleteUserById(String userId);
  15.  
  16. void insertUser(User user);
  17. }
  1. package com.huang.service.impl;
  2.  
  3. import com.huang.domain.User;
  4. import com.huang.mapper.UserMapper;
  5. import com.huang.service.UserService;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8.  
  9. import java.util.List;
  10. @Service
  11. public class UserServiceImpl implements UserService {
  12.  
  13. @Autowired
  14. UserMapper userMapper;
  15. public List<User> getUserList() {
  16. List<User> list = userMapper.getUserList();
  17. return list;
  18. }
  19.  
  20. public User getUserById(String userId) {
  21. return userMapper.getUserById(userId);
  22. }
  23.  
  24. public void updateUserEmailById(String userId, String sex) {
  25. userMapper.updateUserEmailById(userId, sex);
  26. }
  27.  
  28. public void deleteUserById(String userId) {
  29. userMapper.deleteUserById(userId);
  30. }
  31.  
  32. public void insertUser(User user) {
  33. userMapper.insertUser(user);
  34. }
  35. }

    

  (4)编写controller层代码 

  1. package com.huang.controller;
  2.  
  3. import com.huang.domain.User;
  4. import com.huang.service.UserService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.Model;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestMethod;
  10.  
  11. import java.util.List;
  12.  
  13. @Controller
  14. public class UserController {
  15.  
  16. @Autowired
  17. private UserService userService;
  18.  
  19. @RequestMapping(value = "/getAllUser", method = RequestMethod.GET)
  20. public String getUserList(Model model){
  21. List<User> list = userService.getUserList();
  22. model.addAttribute("list",list);
  23. return "showUsers";
  24. }
  25.  
  26. }

  (5)修改index.jsp代码

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>$Title$</title>
  5. </head>
  6. <body>
  7. <a href="/getAllUser">获取所有的user</a>
  8. </body>
  9. </html>

  

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

  

  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <html>
  4. <head>
  5. <title>显示所有的用户</title>
  6. </head>
  7. <body>
  8. <form>
  9. <table >
  10. <c:forEach var="user" items="${list}">
  11. <tr>
  12. <td>${user.userId}</td>
  13. <td>${user.name}</td>
  14. <td>${user.depId}</td>
  15. <td>${user.sex}</td>
  16. </tr>
  17. </c:forEach>
  18. </table>
  19. </form>
  20.  
  21. </body>
  22. </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. Servlet3.1规范和JSP2.3规范

    JSR 340: Java Servlet 3.1 Specification https://jcp.org/en/jsr/detail?id=340 http://files.cnblogs.co ...

  2. Jsoup后台解析html、jsp网页

    在一些网络爬虫或者从第三方网站抓取信息的程序都面临1个问题,如何从网页中把所需的信息提取出来,Jsoup是个比较好的选择,它能把网站内容解析成Document,再从document中取element就 ...

  3. C++ 头文件系列(forward_list)

    简介 forwrad_list字面意思为前向列表,但实际上它是一种单向列表,只能从单一方向遍历. 单向链表实现 forward_list内部是用单向列表实现的,并且设计该库的时候就是以近乎手写的单向链 ...

  4. ReentrantLock获取、释放锁的过程

    看了篇文章,觉得分析得很透彻,其后总结的很到位,地址:http://www.iteye.com/topic/1083832 把获取与释放操作串在一起在简单看一下: 获取锁的时候将当前线程放入同步队列, ...

  5. JavaScript 例题延迟10s 自动手动换图

    <style type="text/css"> * { margin:0px auto; padding:0px; font-family:"微软雅黑&quo ...

  6. codeforces div2.C

    C. New Year and Rating time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  7. 《JavaScript DOM 编程艺术 》 笔记

    一:这本书由几个案列带入知识点,通俗易懂.最大的收获莫过于作者多次提到的逐渐增强和平稳退化. "渐进增强"指的是给所用用户同等的基本使用体验,再根据用户终端的级别给予更高级的用户更 ...

  8. 自己动手系列——实现一个简单的ArrayList

    ArrayList是Java集合框架中一个经典的实现类.他比起常用的数组而言,明显的优点在于,可以随意的添加和删除元素而不需考虑数组的大小.处于练手的目的,实现一个简单的ArrayList,并且把实现 ...

  9. 关于sleep()和interrupt()及主线程和线程

    看代码 public class TestSleep { public static void main(String args[]) throws InterruptedException{ Thr ...

  10. Gulp自动构建Web前端程序

    这两天在一个朋友在项目上碰到了一个这样的问题,在运营过程中,用户在浏览器上对某个表单进行数据提交时,需要引入新的平台接口数据的业务,通过评估,开发团队马上修改了相关后台代码和部分的前端脚本代码,通过简 ...