[SPRING]SpringMVCホームページ1の作成

59446 ワード

  • 2-layer+JDBCCTemplateを適用してホームページのプロジェクトを作成します.
  • 1.新しいSpringFrameworkプロジェクトプリファレンス

  • 環境設定とサーバ設定を完了します.
    Test.jspファイルを作成し、サーバドライバに問題がないことを確認します.
  • Tomcatモジュールの変更

  • 2.プロジェクト全体の構造を把握する




    3. web.xmlの設定

  • presentation-layer
  • business-layer
  • 4. pom.xmlの設定

  • pom.xmlに必要なmaven:
    Aspectj、SpringJDBC、commons-dbcp、ojdbc、Javaバージョン、Springバージョンの調整
  • <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.springbook</groupId>
    	<artifactId>biz</artifactId>
    	<name>SpringMVC1204</name>
    	<packaging>war</packaging>
    	<version>1.0.0-BUILD-SNAPSHOT</version>
    	<properties>
    		<java-version>1.8</java-version>
    		<org.springframework-version>4.2.4.RELEASE</org.springframework-version>
    		<org.aspectj-version>1.6.10</org.aspectj-version>
    		<org.slf4j-version>1.6.6</org.slf4j-version>
    	</properties>
    	<repositories>
    		<repository>
    			<id>public</id>
    			<url>https://repo1.maven.org/maven2/</url>
    		</repository>
    	</repositories>
    	<dependencies>
    		<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
    		<dependency>
    		    <groupId>com.oracle.database.jdbc</groupId>
    		    <artifactId>ojdbc8</artifactId>
    		    <version>12.2.0.1</version>
    		</dependency>
    		<!-- Spring -->
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-JDBC</artifactId>
    			<version>${org.springframework-version}</version>
    		</dependency>
    			<dependency>
    			<groupId>commons-dbcp</groupId>
    			<artifactId>commons-dbcp</artifactId>
    			<version>1.4</version>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-context</artifactId>
    			<version>${org.springframework-version}</version>
    			<exclusions>
    				<!-- Exclude Commons Logging in favor of SLF4j -->
    				<exclusion>
    					<groupId>commons-logging</groupId>
    					<artifactId>commons-logging</artifactId>
    				 </exclusion>
    			</exclusions>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework</groupId>
    			<artifactId>spring-webmvc</artifactId>
    			<version>${org.springframework-version}</version>
    		</dependency>
    				
    		<!-- AspectJ -->
    		<dependency>
    			<groupId>org.aspectj</groupId>
    			<artifactId>aspectjrt</artifactId>
    			<version>${org.aspectj-version}</version>
    		</dependency>
    		<dependency>
    			<groupId>org.aspectj</groupId>
    			<artifactId>aspectjweaver</artifactId>
    			<version>1.8.8</version>
    		</dependency>	
    		<dependency>
    			<groupId>org.aspectj</groupId>
    			<artifactId>aspectjtools</artifactId>
    			<version>${org.aspectj-version}</version>
    		</dependency>		
    		
    		<!-- Logging -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-api</artifactId>
    			<version>${org.slf4j-version}</version>
    		</dependency>
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>jcl-over-slf4j</artifactId>
    			<version>${org.slf4j-version}</version>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-log4j12</artifactId>
    			<version>${org.slf4j-version}</version>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>log4j</groupId>
    			<artifactId>log4j</artifactId>
    			<version>1.2.15</version>
    			<exclusions>
    				<exclusion>
    					<groupId>javax.mail</groupId>
    					<artifactId>mail</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>javax.jms</groupId>
    					<artifactId>jms</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>com.sun.jdmk</groupId>
    					<artifactId>jmxtools</artifactId>
    				</exclusion>
    				<exclusion>
    					<groupId>com.sun.jmx</groupId>
    					<artifactId>jmxri</artifactId>
    				</exclusion>
    			</exclusions>
    			<scope>runtime</scope>
    		</dependency>
    
    		<!-- @Inject -->
    		<dependency>
    			<groupId>javax.inject</groupId>
    			<artifactId>javax.inject</artifactId>
    			<version>1</version>
    		</dependency>
    				
    		<!-- Servlet -->
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>servlet-api</artifactId>
    			<version>2.5</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    			<groupId>javax.servlet.jsp</groupId>
    			<artifactId>jsp-api</artifactId>
    			<version>2.1</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>jstl</artifactId>
    			<version>1.2</version>
    		</dependency>
    	
    		<!-- Test -->
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.7</version>
    			<scope>test</scope>
    		</dependency>        
    	</dependencies>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.9</version>
                    <configuration>
                        <additionalProjectnatures>
                            <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                        </additionalProjectnatures>
                        <additionalBuildcommands>
                            <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                        </additionalBuildcommands>
                        <downloadSources>true</downloadSources>
                        <downloadJavadocs>true</downloadJavadocs>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.5.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <compilerArgument>-Xlint:all</compilerArgument>
                        <showWarnings>true</showWarnings>
                        <showDeprecation>true</showDeprecation>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                    <configuration>
                        <mainClass>org.test.int1.Main</mainClass>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    5.xmlファイルの設定

  • jungbo-layer.xmlとアプリケーションContext.xmlファイルをスキャナ設定します.
  • junbo-layer.xml
  • applicationContext.xml
  • 6.SpringJDBC Templateのバインド

  • database.properties
  • jdbc.driver=oracle.jdbc.OracleDriver
    jdbc.url=jdbc:oracle:thin:@//localhost:1521/xe
    jdbc.username=system
    jdbc.password=1234
  • applicationContext.xml
  • <!-- DataSource 설정하기 -->
    <context:property-placeholder location="classpath:config/database.properties" />
    	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    		<property name="driverClassName" value="${jdbc.driver}" />
    		<property name="url" value="${jdbc.url}"/>
    		<property name="username" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    	</bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
          <property name="dataSource" ref="dataSource" />
    </bean>

    7.取引をAOPに設定

    <!--  트랜잭션 설정하기  -->
    <bean  id="txManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
       <property name="dataSource"   ref="dataSource" />
    </bean>
    
    <tx:advice  id="txAdvice"  transaction-manager="txManager" >
    	<tx:attributes>
    		<tx:method name="get*"  read-only="true" />
    		<tx:method name="*" />
    	</tx:attributes>
    </tx:advice>
    <aop:config>
    	<aop:pointcut id="txPointcut"  expression="execution(* com.springbook.biz..ServiceImpl.*(..) )"   />
    	<aop:advisor  pointcut-ref="txPointcut"  advice-ref="txAdvice"/>
    </aop:config>


    8.設定した値が正常に動作していることを確認する

  • test.jsp->testcontroller->結果パスをチェック!
  • test.jspでtest.doリンクを作成します.
  • JungboControllerでのテストメソッドの作成
  • これは
  • の最終目的地の結果です.jspの作成
  • 運転結果の確認


  • ServiceImplが正常に動作していることを確認します.(ビジネスチームが正常に稼働していることを確認)
  • ServiceImplからジェネレータを作成
  • ServiceImplの作成が順調であることを確認

    web.xmlのリスナーはApplicationContextのスキャナーを自動的にアップロードして実行します.
    ServiceImplの作成者は処理しません.
  • ServiceImplにテストメソッドを追加し、メソッドの可用性を確保します.
  • コントローラを使用したエアノイズ
  • 運転結果の確認
  • DAOテスト方法で実行されていることを確認します.



  • 参考資料!