SSM整合コード


記事の目次
  • 1は、各フレームの構成
  • をそれぞれ作成する.
  • 1.1 Springフレーム構成ファイルを作成する
  • 1.2 SprigMVCフレーム構成ファイルを作成する
  • 1.3 Mybatisフレーム構成ファイルを作成する
  • Spring SprigMVCフレームとMyBatisフレーム
  • を統合しました.
  • .Spring SprigMVCフレーム
  • を統合する.
  • 2.2 Spring MyBatisフレーム
  • を統合する.
  • .Spring統合MyBatisフレーム構成トランザクション
  • 1各フレームの配置をそれぞれ作成する
    1.1 Springフレーム配置ファイルの作成
    Springフレームを作成するプロファイルappration Contact.xml
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">
    
        
        
        <context:component-scan base-package="com.xiaoxi">
            
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        context:component-scan>
    
    
    
    beans>
    
    試験種別の作成
    public class AccountServiceTest {
         
    
        @Test
        public void testfindAll() {
         
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
            AccountService accountService = applicationContext.getBean("accountService", AccountService.class);
            accountService.findAll();
        }
    }
    
    1.2 SprigMVCフレーム配置ファイルを作成する
    web.xmlプロファイルを作成する
    
    
    <web-app>
      <display-name>Archetype Created Web Applicationdisplay-name>
    
      
      <filter>
        <filter-name>characterEncodingFilterfilter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
        <init-param>
          <param-name>encodingparam-name>
          <param-value>UTF-8param-value>
        init-param>
      filter>
      <filter-mapping>
        <filter-name>characterEncodingFilterfilter-name>
        <url-pattern>/*url-pattern>
      filter-mapping>
    
      
      <servlet>
        <servlet-name>dispatcherServletservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        
        <init-param>
          <param-name>contextConfigLocationparam-name>
          <param-value>classpath:springmvc.xmlparam-value>
        init-param>
        
        <load-on-startup>1load-on-startup>
      servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServletservlet-name>
        <url-pattern>/url-pattern>
      servlet-mapping>
    
    web-app>
    
    SprigMVCフレームを作成するプロファイルsprigmvc.xml
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
    
        
        <context:component-scan base-package="com.xiaoxi">
            
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        context:component-scan>
    
        
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/pages/">property>
            <property name="suffix" value=".jsp">property>
        bean>
    
        
        <mvc:resources mapping="/js/**" location="/js/">mvc:resources>
        <mvc:resources mapping="/css/**" location="/css">mvc:resources>
        <mvc:resources mapping="/images/**" location="/images/">mvc:resources>
    
        
        <mvc:annotation-driven>mvc:annotation-driven>
    beans>
    
    1.3 Mybatisフレーム構成ファイルを作成する
    注を使う方式です.
    sql MapConfigのプロファイルを作成します.
    
    
    
    <configuration>
        <properties resource="jdbcConfig.properties">properties>
        <environments default="mysql">
            <environment id="mysql">
                <transactionManager type="JDBC">transactionManager>
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                dataSource>
            environment>
        environments>
        
        <mappers>
            <package name="com.xiaoxi.dao"/>
        mappers>
    configuration>
    
    jdbcConfig.propertiesファイルの内容は:
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/ssm_spring?serverTimezone=UTC&characterEncoding=utf8
    jdbc.username=root
    jdbc.password=xiaoxi123
    
    AcceountDaoインターフェースは、実装クラスを書く必要はありません.
    /**
     * Account DAO  
     */
    public interface AccountDao {
         
    
        @Select("select * from account")
        public List<Account> findAll();
    
        @Insert("insert into account (name, money) values (#{name}, #{money})")
        public void saveAccount(Account account);
    }
    
    テストクラスを作成するAcceount DaoTest.java
    public class AccountDaoTest {
         
    
        @Test
        public void testfindAll() throws Exception{
         
            //      
            InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
            //  SqlSessionFactory    
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
            //  SqlSession  
            SqlSession session = sqlSessionFactory.openSession();
            //      
            AccountDao accountDao = session.getMapper(AccountDao.class);
            List<Account> accounts = accountDao.findAll();
            for(Account account: accounts) {
         
                System.out.println(account);
            }
            //    
            session.close();
            in.close();
        }
    }
    
    2 Spring SprigMVCフレームとMyBatisフレームを統合
    2.1 Spring統合SprigMVCフレーム
    モニターを設定してサービス開始時にコンテナを作成します.
    
    <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    listener>
    
    <context-param>
      <param-name>contextConfigLocationparam-name>
      <param-value>classpath:applicationContext.xmlparam-value>
    context-param>
    
    2.2 Spring統合MyBatisフレーム
    appication Contect.xmlプロファイルに配置する
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">
    
        
        
        <context:component-scan base-package="com.xiaoxi">
            
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        context:component-scan>
    
        
        <context:property-placeholder location="classpath:jdbcConfig.properties">context:property-placeholder>
    
        
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driver}">property>
            <property name="jdbcUrl" value="${jdbc.url}">property>
            <property name="user" value="${jdbc.username}">property>
            <property name="password" value="${jdbc.password}">property>
        bean>
    
        
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource">property>
        bean>
    
        
        <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.xiaoxi.dao">property>
        bean>
    beans>
    
    2.3 Spring統合MyBatisフレーム構成事務
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">
    
        
        
        <context:component-scan base-package="com.xiaoxi">
            
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        context:component-scan>
    
        
        <context:property-placeholder location="classpath:jdbcConfig.properties">context:property-placeholder>
    
        
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driver}">property>
            <property name="jdbcUrl" value="${jdbc.url}">property>
            <property name="user" value="${jdbc.username}">property>
            <property name="password" value="${jdbc.password}">property>
        bean>
    
        
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource">property>
        bean>
    
        
        <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.xiaoxi.dao">property>
        bean>
    
        
        
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource">property>
        bean>
    
        
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="*" propagation="REQUIRED" read-only="false"/>
                <tx:method name="find*" propagation="SUPPORTS" read-only="true">tx:method>
            tx:attributes>
        tx:advice>
    
        
        <aop:config>
            
            <aop:pointcut id="pt1" expression="execution(* com.xiaoxi.service.impl.*.*(..))"/>
            
            <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1">aop:advisor>
        aop:config>
    beans>