使用IDEA的gradle整合spring+springmvc+mybatis 採用javaconfig配置

1.在上篇博客裏講述了spring+mybatis的整合,這邊在上篇的基礎上進行開發。html

  上篇博客連接http://www.cnblogs.com/huangyichun/p/6149946.htmljava

2.項目整體架構mysql

  

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

    

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)添加配置文件,採用javaconfiggithub

  

  直接上代碼:web

  

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層代碼spring

    

 

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層代碼 sql

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代碼apache

<%@ 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.jspapi

  

<%@ 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頁面,點擊連接顯示:

相關文章
相關標籤/搜索