1. 程式人生 > >零配置整合初步整合ssm框架+junit測試的配置

零配置整合初步整合ssm框架+junit測試的配置

由於看到一大堆xml檔案就蛋疼,所以本人傾向於用註解來配置spring,經過對比確實也要簡單方便一些,增加功能也可以通過重寫方法來實現,不過這種好像只能在servlet3.0和spring3以上才能用.
首先在config包下一個類,繼承AbstractAnnotationConfigDispatcherServletInitializer類…由於一系列的繼承關係,總之Spring在啟動時就會檢查到我們繼承了這個抽象類的類從而用來配置ServletContext.

 package cn.paul.config;

import org.springframework.context.annotation.Bean;
import
org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import javax.servlet.MultipartConfigElement; import javax.servlet.ServletRegistration; /** * Created by paul on 2017-06-14. * 此乃系統入口 */ public
class SpringInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{RootConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { return
new Class<?>[]{WebMVCConfig.class}; } @Override protected String[] getServletMappings() { //將DispatcherServlet對映到"/" return new String[]{"/"}; } @Override protected void customizeRegistration(ServletRegistration.Dynamic registration) { registration.setMultipartConfig(new MultipartConfigElement("")); } }

接下來需要寫WebMVCConfig,由於功能簡單隻配置了jsp的處理

package cn.paul.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
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;
import org.springframework.web.servlet.view.JstlView;

/**
 * Created by paul on 2017-06-14.
 * 該檔案用於配置Spring的檢視解析器,為了解析jsp採用ViewResolver物件
 */
 //該註解表示這是一個配置類
@Configuration
//表示啟用SpringMVC
@EnableWebMvc
//指定掃描的包,我們這裡讓他控制web下的控制器即可
@ComponentScan(basePackages = {"cn.paul.web"})
public class WebMVCConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ViewResolver viewResolver() {
        //配置jsp檢視解析器
        InternalResourceViewResolver resolver =
                new InternalResourceViewResolver();
        //這裡是jsp檔案的路徑對映,我們把jsp檔案放在WEB-INF下的views資料夾中
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }



    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        //配置靜態資源處理
        configurer.enable();
    } 
}

而RootConfig我打算用來配置一些其他的bean,比如mybatis相關的東西.

package cn.paul.config;

import cn.paul.dao.UserDao;
import cn.paul.dao.impl.UserDaoImpl;
import cn.paul.mapper.UserMapper;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import javax.sql.DataSource;

/**
 * Created by paul on 2017-06-14.
 */
@EnableTransactionManagement
@Configuration
@MapperScan("cn.paul.mapper")
@ComponentScan(basePackages = { "cn.paul" },
        excludeFilters = { @ComponentScan.Filter(type = FilterType.ANNOTATION,
                value = EnableWebMvc.class) })
public class RootConfig {
    @Bean
    public DataSource dataSource() {
        return new ComboPooledDataSource();
    }

    @Bean
    public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(dataSource());
        sqlSessionFactory.setTypeAliasesPackage("cn.paul.domain");
        return sqlSessionFactory;
    }
 @Bean
    public DataSourceTransactionManager dataSourceTransactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }



}

這裡有一個坑就是@componentScan中設定掃描的包可以是根目錄下所有的包,但是必須要排除有@enableMVC註解的類,不然一會兒Junit會報錯.

一個簡單的mapper類,用來做登入功能,那個@param必須要寫不然會提示找不到引數…還有@repository也要寫上不然 會報紅,但好像不寫也能通過…

package cn.paul.mapper;

import cn.paul.domain.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Repository;

/**
 * Created by dell1 on 2017-06-25.
 */
@Repository
public interface UserMapper {
    /**
     * 根據使用者名稱密碼查詢,即登陸功能
     * @param  username
     * @param  password
     * @return 返回user物件
     * */
    @Select("select * from tb_user4 where username=#{username} and password=#{password}")
    User findUser( @Param("username")String username,@Param("password") String password);
}

相關推薦

配置整合初步整合ssm框架+junit測試配置

由於看到一大堆xml檔案就蛋疼,所以本人傾向於用註解來配置spring,經過對比確實也要簡單方便一些,增加功能也可以通過重寫方法來實現,不過這種好像只能在servlet3.0和spring3以上才能用. 首先在config包下一個類,繼承Abstra

maven整合ssm框架pom.xml配置檔案

首先複習下maven如何使用:maven詳解 ssm框架整合:整合案例 這裡直接貼出整合後的pom.xml配置檔案,僅供記錄和日後參考! <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http

01 整合IDEA+Maven+SSM框架的高並發的商品秒殺項目之業務分析與DAO層

初始 lob 可能 很多 ont 配置 支持 個數 base 作者:nnngu 項目源代碼:https://github.com/nnngu/nguSeckill 這是一個整合IDEA+Maven+SSM框架的高並發的商品秒殺項目。我們將分為以下幾篇文章來進行詳細的講解:

02 整合IDEA+Maven+SSM框架的高並發的商品秒殺項目之Service層

狀態 enum枚舉類 post note 序號 設計 發的 連接數據庫 解釋 作者:nnngu 項目源代碼:https://github.com/nnngu/nguSeckill 首先在編寫Service層代碼前,我們應該首先要知道這一層到底是幹什麽的。 Service層

手把手教你整合最優雅SSM框架 SpringMVC + Spring + MyBatis

                        &nbs

分分鐘 整合 activiti與ssm框架

整合Activiti框架  Spring框架叫做專案(資源)的管家。如果待整合專案中,有Spring框架,那麼主要就是和“Spring框架”做整合。把Activiti框架的“核心類”交給Spring管理; Activiti的核心類,引擎配置物件,引擎物件,三大服務物件

02 整合IDEA+Maven+SSM框架的高併發的商品秒殺專案之Service層

首先在編寫Service層程式碼前,我們應該首先要知道這一層到底是幹什麼的。Service層主要負責業務模組的邏輯應用設計。同樣是首先設計介面,再設計其實現的類,接著在Spring的配置檔案中配置其實現的關聯。這樣我們就可以在應用中呼叫Service介面來進行業

MongDB-API在SSM框架中的配置及使用

一、在父工程的pom.xml中引入Maven依賴 <groupId>com.foriseland.fjf</groupId> <artifactId>fjf-cache-mongdb</artifactId> <version>1.0

幾種配置properties檔案方法--SSM框架-附原始碼

背景:  Spring、SpringMVC4.0.2、Mybatis3.2.6、JDK1.8、tomcat8、maven3.3.9、MyEclipse2013 專案結構:   demo.properties:  方法一: springmvc.xml

SSM框架+MySQL資料庫配置事務管理

資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 例如銀行轉賬,A賬戶轉100元給B賬戶,正常的流程是A賬戶減掉100元,B賬戶增加100元。如果轉賬失敗的話,不能出現A賬戶已經減掉100元而B賬戶沒有增加10

ssm框架基本實現配置

dao層與pojo層使用generatorSqlmapCustom逆向工程自動生存的程式碼 1.db.properties的配置 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/springm

ssm框架的主要配置檔案

說明:為以後檢視學習備份,請知。 spring+springmvc+mybatis框架中用到了三個XML配置檔案:web.xml,spring-mvc.xml,spring-mybatis.xml 專案中還會用到兩個資源屬性檔案jdbc.properties和lo

HttpSessionListener 監聽器事件配置及注入bean ssm框架

當一個瀏覽器第一次訪問網站的時候,J2EE應用伺服器會新建一個HttpSession物件 ,並觸發 HttpSession建立事件 ,如果註冊了HttpSessionListener事件監聽器,則會呼叫HttpSessionListener事件監聽器的sessionCreat

SSM框架之Log4j配置

前言   之前搭建SSM框架的時候我們曾經配置過log4j.properties檔案,那麼這個檔案主要是幹什麼的呢?配置的格式有哪些?在本文中會進行相關的講解。 log4j.properties 什麼是Log4j?   Log4j是Apache的一個開源專案,通過使用

開始Eclipse/Maven搭建SSM框架做web應用(超詳細+100%可用+避坑版)

目前SSM框架(Spring+SpringMVC+Mybatis)依然是市場主流,如何搭建一個實用的SSM框架是很多同學都想學習的技能。但網路上的大多數教程要麼不完整,要麼還遺留了很多坑,即使嚴格按教程來也很難得到我們想要的結果。所以我就想自己寫一篇搭建攻略,即使零基礎的同學,按我的攻略步驟

ssm框架web專案配置全域性異常處理

在專案的資原始檔目錄中新增log4j.properties。比如:log4j.rootLogger = INFO,stdout,D,E###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.append

第一篇-SSM框架+ehcache詳細配置(適合新手)

最近打算把常用的快取技術總體複習一下,也希望幫助到和我遇到一樣問題的親們。1.前言為了提高MyBatis的效能,有時候我們需要加入快取支援,目前用的比較多的快取莫過於ehcache快取了,ehcache效能強大,而且位各種應用都提供瞭解決方案,在此我們主要是做查詢快取,提高查

ssm框架中的配置檔案

spring+springmvc+mybatis框架中用到了三個XML配置檔案:web.xml,spring-mvc.xml,spring-mybatis.xml 專案中還會用到兩個資源屬性檔案jdbc.properties和log4j.propertie

SSM框架多資料來源配置以及一直呼叫預設的資料來源的問題

今天突然想到,學習一下SSM框架多資料來源配置問題,於是上網查了查,發現配置都很簡單,這裡就不做過多的講解了,說一下,我遇到的問題 就一個問題,配置按照網上說的配置了之後,測試N遍還是呼叫的預設的資料庫 問什麼? 查了半天時間,一直追查到底層才發現,自己配置沒有完全配置好,

SSM框架之JDBC配置

前言   之前搭建SSM框架的時候我們曾經配置過jdbc.properties檔案,那麼這個檔案主要是幹什麼的呢?在本文中會進行相關的講解。 jdbc.properties 什麼是JDBC?   相信JDBC對於程式設計師來說並不陌生,如果不太清楚具體含義的話可以看看以下JDBC的定義