如何快速搭建一個ssm框架

首先我們需要創建一個maven項目

1.右鍵 new maven project 

第一個勾選然後下一步

groupid 可以寫com.xxx.xxx  之類的

artifaceid 寫項目名 xxx

web項目選擇打war包 然後下一步就ok

 

2.項目中少web.xml /WEB-INFO 右鍵項目  properties   → project faces → Dynamic Web Module 勾選去掉點擊apply  →再勾選上 然後 它會提醒你配置    然後第二個框目錄 寫src/main/webapp   應用就好了   maven的setting 路徑自己配置 鏡像位置推薦用阿里雲的

 

3.pom文件的配置

這裏jar包miss報錯 還有項目紅色歎號 怎麼弄maven  update project  還有build path  clean都沒有用, 直接去網址下載jar包 然後放進文件夾裏

具體的pom 需要的jar包 如下

<dependencies>
  		 <!-- springwebmvc包 -->
		  <dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-webmvc</artifactId>
		    <version>4.3.7.RELEASE</version>
		  </dependency>
		  <!-- springjdbc事務控制 -->
		  <dependency>
			    <groupId>org.springframework</groupId>
			    <artifactId>spring-jdbc</artifactId>
			    <version>4.3.7.RELEASE</version>
		  </dependency>
		  <!--spring aspects 面向切面編程  -->
		  <dependency>
			    <groupId>org.springframework</groupId>
			    <artifactId>spring-aspects</artifactId>
			    <version>4.3.7.RELEASE</version>
		  </dependency>
		  <!-- mybatis -->
		  <dependency>
			    <groupId>org.mybatis</groupId>
			    <artifactId>mybatis</artifactId>
			    <version>3.4.2</version>
		  </dependency>
		  <!-- mybatis spring 整合適配 -->
		  <dependency>
			    <groupId>org.mybatis</groupId>
			    <artifactId>mybatis-spring</artifactId>
			    <version>1.3.1</version>
		  </dependency>
		  <!--數據庫鏈接池  -->
		  <dependency>
			    <groupId>c3p0</groupId>
			    <artifactId>c3p0</artifactId>
			    <version>0.9.1.2</version>
		  </dependency>
  		  <!--mysql驅動  -->
			<dependency>
			    <groupId>mysql</groupId>
			    <artifactId>mysql-connector-java</artifactId>
			    <version>5.1.41</version>
			</dependency>
			<!--開發web的標配包 jstl seevlet-api junit  -->
			<dependency>
			    <groupId>jstl</groupId>
			    <artifactId>jstl</artifactId>
			    <version>1.2</version>
			</dependency>
			<dependency>
			    <groupId>javax.servlet</groupId>
			    <artifactId>servlet-api</artifactId>
			    <version>2.5</version>
			    <scope>provided</scope>   <!--系統本來就有打包自動剔除  -->
			</dependency>
			<dependency>
			    <groupId>junit</groupId>
			    <artifactId>junit</artifactId>
			    <version>4.12</version>
			    <scope>test</scope>
			</dependency>
			
			
  		  
  </dependencies>

4.我們對WEB-INF 下的web.xml 進行編寫 <web-app> </web-app> 這個分開 在裏面補充  

1).spring 的容器  ContextLoaderListener  快捷鍵補全 alt+/

 <param-value>classpath:applicationContext.xml</param-value>


只用修改這個  並且在src/main/resources  右鍵 new spring bean configuration File  創建上面的 spring的配置文件

2).springMVC前端控制器

DispatcherServlet 快捷鍵提示補全

      <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>location</param-value>
        </init-param>   刪掉不指定 默認全部掃描

將<servlet-name>dispatcherServlet</servlet-name> 全改成這個名

<url-pattern>/</url-pattern>  全部掃描

然後在web.xml同級目錄下創建dispatcherServlet-servlet.xml   創建方式同上applicationContext.xml

在這個裏面控制springMVC掃描

 

 

3).添加兩個基本的過濾器

<!-- 3.字符編碼過濾器 -->
		<filter>
			<filter-name>CharacterEncodingFilter</filter-name>
			<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
			<init-param>
				<param-name>encoding</param-name>  <!-- 這些屬性可以在類中看 -->
				<param-value>utf-8</param-value>
			</init-param>
			<init-param>
				<param-name>forceRequestEncoding</param-name>  <!-- 返回 -->
				<param-value>true</param-value>
			</init-param>
			<init-param>
				<param-name>forceResponseEncoding</param-name>  <!-- 響應 -->
				<param-value>true</param-value>
			</init-param>	
		</filter>
		<filter-mapping>
			<filter-name>CharacterEncodingFilter</filter-name>
			<url-pattern>/*</url-pattern>  <!--攔截所有  -->
		</filter-mapping>
	 <!--4.Rest風格的URI  將頁面post請求轉爲指定的delete 或者put請求  -->
	 <filter>
			<filter-name>HiddenHttpMethodFilter</filter-name>
			<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	  </filter>
	  <filter-mapping>
			<filter-name>HiddenHttpMethodFilter</filter-name>
			<url-pattern>/*</url-pattern>  <!--攔截所有  -->
		</filter-mapping>

5.在dispatcherServlet-servlet.xml配置文件頂部加這個

xmlns:context="http://www.springframework.org/schema/context"

然後對SpringMVC 的配置文件 包含網站跳轉邏輯的控制,配置   即註解的掃描的範圍的指定

選擇該xml下面的Namespaces  mvc勾選上

<!-- SpringMVC 的配置文件 包含網站跳轉邏輯的控制,配置 -->
 <context:component-scan base-package="com.ice" use-default-filters="false">
 <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
 </context:component-scan>
 <!--配置視圖解析器  -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/WEB-INF/views/"></property>   <!--指定頁面位置  -->
     <property name="suffix" value=".jsp"></property>    <!-- 指定後綴 -->
 </bean>
 <!-- 兩個標準配置 -->
 <!-- 將springmvc不能處理的交給tomcat -->
 <mvc:default-servlet-handler/>
 <mvc:annotation-driven>
 <!-- 能支持springmvc更高級的一些功能  快捷的ajax請求, JSR303校驗,映射動態請求 -->
 </mvc:annotation-driven>

6.   配置c3p0數據庫相關

在applicationContext.xml 文件打開  然後選擇namespace   aop(√) context (√) tx(√)


<context:component-scan base-package="com.ice">
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <!-- springmvc掃描帶註解的這裏spring不掃描 -->
</context:component-scan>

<!-- spring的配置文件 與主要配置及業務邏輯有關的 -->
<!-- 數據源的控制    事務控制  xxx -->
<context:property-placeholder location="classpath:dbconfig.properties"/>
<bean  id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
 <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
 <property name="driverClass"  value="${jdbc.driverClass}"></property>
 <property name="user" value="${jdbc.user}"></property>
 <property name="password" value="${jdbc.password}"></property>
</bean>


<!-- 配置和mybatis的整合 -->
<bean  id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--指定mybatis全局配置文件的位置  -->
    <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    <!--數據源就是上面的數據源  -->
    <property name="dataSource" ref="pooledDataSource"></property>
    <!-- mapper 文件放的位置 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
 </bean>
 
 
 <!-- 配置掃描器 將mybatis接口的實現加入到ioc容器中    -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 <!--掃描所有dao接口的mapper的實現 加入到ioc容器中  -->
   <property name="basePackage" value="com.ice.dao"></property>
 </bean >
 
 <!--事務控制  -->
 <bean  id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="pooledDataSource"></property>  <!-- 說明數據源 -->
 </bean>
 <!-- 開啓註解的事務,使用xml配置的形式的事務(比較重要的使用這個) -->
 <aop:config>
 <!-- 切入表達式   下面是所有的方法多少個參數都能切入事務-->
 <aop:pointcut expression="execution(* com.ice.service..*(..))" id="txPoint"/>
 <!-- 配置事務增強 -->
 <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
 </aop:config>
 <!-- 配置事務增強如何切入 -->
 <tx:advice id="txAdvice" ><!-- 默認屬性transaction-manager="transactionManager" -->
   <tx:attributes>
     <tx:method name="*"/>  <!--所有方法都是事務方法  -->
     <tx:method name="get*" read-only="true"/><!-- 以get開始的所有方法 -->
   </tx:attributes>
 </tx:advice>
 

此步驟創建了 mapper包   同時還有mybatis的配置文件 mybatis-config.xml 與applicationContext在同一目錄下 

 

7.mybatis的配置  mybatis-config.xml的主要配置如下

<?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">   <!--從mybatis官網的 getting started 獲得  -->
  
  <configuration>
    <settings>
       <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 這個類從configuration xml  settings  mapUnderscoreToCamelCase  駝峯命名規則   -->
    </settings>
    <typeAliases >
     <package  name="com.ice.bean" />
    </typeAliases>
  </configuration>

然後就是 mybatis逆向工程 必須的xml 和java類 

這個是xxx.xml 直接放在包下面 跟pom.xml同級

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--數據庫驅動,最好不要有中文字符,不然會找不到-->
    <!-- <classPathEntry location="D:/mysql-connector-java-5.1.40-bin.jar" /> -->
    <context id="cosmetic"   targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的註釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        
        
        <!--配置數據庫鏈接信息賬號密碼-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.204.131:3306/ssh_crud" userId="root" password="123456">
        </jdbcConnection>
   
         <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer,爲 true時把JDBC DECIMAL 和 
            NUMERIC 類型解析爲java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        
        <!--生成javabean類存放位置-->
        <javaModelGenerator targetPackage="com.ice.bean" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        
        
        <!--生成映射文件mapper接口存放位置-->
        <sqlMapGenerator targetPackage="com.ice.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        
        
        <!--生成mapper接口、mapper.xml類存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.ice.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        
        
        <!--生成對應表及類名,需要記住的一點是逆向工程無法生成關聯關係,只能生成單表操作-->
        <table  tableName="emp"   domainObjectName="Employee" />
        <table tableName="dept"  domainObjectName="Department" />
     
    </context>
</generatorConfiguration>

xxx.java

package com.ice.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
 
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
 
public class MBGTest {

  //生成bean  mapper  的方法
	 
		public void generator() throws Exception{
	 
			List<String> warnings = new ArrayList<String>();
			boolean overwrite = true;
			//指定 逆向工程配置文件
			File configFile = new File("mbg.xml"); 
			ConfigurationParser cp = new ConfigurationParser(warnings);
			Configuration config = cp.parseConfiguration(configFile);
			DefaultShellCallback callback = new DefaultShellCallback(overwrite);
			MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
					callback, warnings);
			myBatisGenerator.generate(null);
	 
		} 
		public static void main(String[] args) throws Exception {
			try {
				MBGTest generatorSqlmap = new MBGTest();
				generatorSqlmap.generator();
			} catch (Exception e) {
				e.printStackTrace();
			}
			
		}
	 
	

}

運行上面的java 就生成了所需的 mapper 以及實體類javabean 

我們的框架三部分就完成的差不多了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章