1. 程式人生 > >IDEA使用 maven 搭建 SSM 框架

IDEA使用 maven 搭建 SSM 框架

文章目錄


公司有個小的內部使用的軟體,讓開發,自己選擇使用 SSM ;

因為之前自己學過,本以為一切水到渠成,但是好久沒用SSM(上次用還是九月份),框架搭建就費勁了,特此記錄下 ;


怎麼建立 maven 專案,不再累贅 ,網上一大把,或者看我的之前的部落格;


pom 檔案的編寫

SSM 框架,需要眾多的 jar 包,具體需要哪些包,這個誰也說不清楚,我也不清楚,去網上 down

一份下來,就好了 ,但是不能保證以後 SSM 用到的包,都被囊括在其中,後面需要再自己新增;

	<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <!-- spring版本號 -->
<spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本號 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日誌檔案管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version
>
</properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 匯入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- 匯入Mysql資料庫連結jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 匯入dbcp的jar包,用來在applicationContext.xml中配置資料庫 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- JSTL標籤類 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 日誌檔案管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 格式化物件,方便輸出日誌 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- log end --> <!-- 映入JSON --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <!-- 上傳元件包 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> </dependencies>

專案結構

在等 maven 下載的過程中,把專案結構建立下,如下圖所示;

maven 下載不需要多久,如果你下載很久,建議換成阿里的映象)

在這裡插入圖片描述


SSM 配置檔案的編寫

resources 檔案的對應的子檔案下面進行 SSM 整合的配置

  1. sqlMapConfig.xml 配置檔案:

    裡面進行一個mybatis自己的配置,比如快取、別名、懶載入等

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
    
        <!-- 別名設定 -->
        <typeAliases>
            <!-- 批量別名,po -->
            <package name="cn.hyc.ssm"/>
        </typeAliases>
    
    
    </configuration>
    
    
  2. applicationContext-dao.xml 配置檔案

    裡面配置那些本該由 mybatis 管理的配置項,比如資料來源、批量掃描 mapper ,

    整合以後,這些交給 spring 管理 ;

    	<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           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/context
                http://www.springframework.org/schema/context/spring-context.xsd"
           default-autowire="byName">
    
    
        <!-- ********************************************************
             *** 該項配置檔案,用於配置 spring與mybatis整合之後, ***
             *** 那些本來由mybatis管理的東西,現在交由mybatis管理 ***
             ******************************************************** -->
    
    
    
        <!-- 配置 sqlSessionFactory,讓 spring 管理sqlSessionFactory -->
        <!-- class 類在 spring-mybatis的整合包裡面 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 設定讀取 mybatis 配置檔案的資源流-->
            <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
            <!-- 設定資料來源,引用下面配置的資料來源物件-->
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
        <!-- 讀取資料庫的配置檔案 -->
        <context:property-placeholder location="classpath:db.properties"/>
    
        <!-- 配置 DBCP  資料來源 -->
        <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"/>
            <property name="maxOpenPreparedStatements" value="10"/>
            <property name="maxIdle" value="5"/>
        </bean>
    
        <!--批量掃描 mapper,自動生成代理物件 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="cn.hyc.mapper"/>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        </bean>
    
    
    </beans>
    
  3. applicationContext-beans.xml 配置檔案

    在裡面配置需要註冊到 spring 容器中的 bean,可以是掃描註解自動建立的,也可以存放配置建立的物件;

    	<?xml version="1.0" encoding="UTF-8"?>
    <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:mvc="http://www.springframework.org/schema/mvc"
    	       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/mvc 
    	       http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    
        <!-- ********************************************************
             ***      spring 配置檔案,這裡用於配置那些 bean      ***
             ******************************************************** -->
    
        <!-- 開啟註解掃描,自動掃描那些使用註解建立的物件 -->
        <context:component-scan base-package="cn.hyc." />
    
    
    </beans>
    
  4. applicationContext-transaction.xml 配置檔案

    對 spring的事務配置,

    		<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    
    
        <!-- ********************************************************
             ***               spring事務的配置                   ***
             ******************************************************** -->
    
    
        <!-- ********************************************************
             ***           開啟事務管理,配置資料來源               ***
             ******************************************************** -->
        <!--<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">-->
            <!--&lt;!&ndash; dataSource 定義在 ApplicationContext-dao.xml 中,這裡需要告訴它 fix 所有的spring配置檔案&ndash;&gt;-->
            <!--<property name="dataSource" ref="dataSource"/>-->
        <!--</bean>-->
    
    
        <!-- ********************************************************
             ***           配置對什麼樣的方法使用事務             ***
             ******************************************************** -->
        <!--<tx:advice id="transactionInterceptor" transaction-manager="transactionManager">-->
            <!--<tx:attributes>-->
                <!--&lt;!&ndash;對於 增刪改 方法需要開啟事務&ndash;&gt;-->
                <!--<tx:method name="save*"/>-->
                <!--<tx:method name="insert*"/>-->
                <!--<tx:method name="update*"/>-->
                <!--<tx:method name="delete*"/>-->
                <!--&lt;!&ndash;對於 查 ,級別設為 SUPPORTS ,支援事務 &ndash;&gt;-->
                <!--<tx:method name="find*" propagation="SUPPORTS" read-only="true"/>-->
                <!--<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>-->
            <!--</tx:attributes>-->
        <!--</tx:advice>-->
    
        <!--配置切入點,也就是配置,在什麼地方使用事務-->
        <!--<aop:resource.config>-->
            <!--<aop:advisor advice-ref="transactionInterceptor" pointcut="execution(* xin.ijava.ssm.services.impl.*.*(..))"/>-->
        <!--</aop:resource.config>-->
        <!--加上這句話,不然 services的層,建立會報錯,報 actually of type 'com.sun.proxy.$Proxy12'-->
        <!--報 這樣的 型別錯誤-->
        <!--<aop:aspectj-autoproxy proxy-target-class="true"/>-->
    
    
    </beans>
    
  5. springMvc.xml 的配置檔案

    配置 springMvc 的一些配置,比如解析的檢視,前後綴,靜態資源的攔截問題,關於 springMvc的配置寫在這裡

    	<?xml version="1.0" encoding="UTF-8"?>
    <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"
           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">
    
        <!-- 啟用spring mvc 註解 -->
        <!--<context:annotation-config />-->
    
        <!-- 完成請求和註解POJO的對映 -->
        <!--<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />-->
    
    
        <!--避免IE執行AJAX時,返回JSON出現下載檔案 -->
        <!--<bean id="mappingJacksonHttpMessageConverter"-->
        <!--class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">-->
        <!--<property name="supportedMediaTypes">-->
        <!--<list>-->
        <!--<value>text/html;charset=UTF-8</value>-->
        <!--</list>-->
        <!--</property>-->
        <!--</bean>-->
    
        <!-- 啟動SpringMVC的註解功能,完成請求和註解POJO的對映 -->
        <!--<bean-->
                <!--class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">-->
            <!--<property name="messageConverters">-->
                <!--<list>-->
                    <!--<ref bean="