IDEA使用 maven 搭建 SSM 框架
阿新 • • 發佈:2018-12-12
文章目錄
公司有個小的內部使用的軟體,讓開發,自己選擇使用 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
整合的配置
-
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>
-
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>
-
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>
-
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">--> <!--<!– dataSource 定義在 ApplicationContext-dao.xml 中,這裡需要告訴它 fix 所有的spring配置檔案–>--> <!--<property name="dataSource" ref="dataSource"/>--> <!--</bean>--> <!-- ******************************************************** *** 配置對什麼樣的方法使用事務 *** ******************************************************** --> <!--<tx:advice id="transactionInterceptor" transaction-manager="transactionManager">--> <!--<tx:attributes>--> <!--<!–對於 增刪改 方法需要開啟事務–>--> <!--<tx:method name="save*"/>--> <!--<tx:method name="insert*"/>--> <!--<tx:method name="update*"/>--> <!--<tx:method name="delete*"/>--> <!--<!–對於 查 ,級別設為 SUPPORTS ,支援事務 –>--> <!--<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>
-
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="