idea配置SSM

SSM基本流程

tomcat配置

mysql配置

maven配置

intellij idea配置

一. 新建工程

1.選擇maven中的模板創(chuàng)建, 一般選擇maven-archetype-webapp
選擇maven中的模板創(chuàng)建
2.這一步隨便起個名就行
選擇maven中的模板創(chuàng)建
3.這一步是配置maven設(shè)置, 添加的字段是阻止每次maven的自更新
選擇maven中的模板創(chuàng)建
4.起項目名, 然后就等待maven的構(gòu)建項目過程, 第一次的話會稍微久一點, 之后就會比較快了.
選擇maven中的模板創(chuàng)建

二. 建包

1.上面的步驟完成之后會是下面這樣.
選擇maven中的模板創(chuàng)建
選擇maven中的模板創(chuàng)建
2. 首先先在main文件夾下建立新的文件夾java, 然后右鍵選擇java設(shè)置為源代碼文件夾.
選擇maven中的模板創(chuàng)建
3. 之后就在java文件夾下建包,建包之后會是這樣
選擇maven中的模板創(chuàng)建
選擇maven中的模板創(chuàng)建

三. 設(shè)置maven

<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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.lzhr</groupId>
  <artifactId>ssm_setup</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ssm_setup Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <properties>
    <spring.version>4.3.6.RELEASE</spring.version>
    <spring-data.version>1.11.0.RELEASE</spring-data.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.40</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/jstl/jstl -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.6.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
      <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-dao -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-dao</artifactId>
      <version>2.0.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <version>2.1.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.8.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.6</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>RELEASE</version>
    </dependency>
  </dependencies>
  
  <build>
    <finalName>SSMSample</finalName>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
          <include>**/*.tld</include>
        </includes>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
          <include>**/*.tld</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>
  
</project>

-Spring配置

創(chuàng)建applicationContext.xml

  • 在resource文件夾中創(chuàng)建xml, 流程如圖:


    1. 在resource文件夾中創(chuàng)建一個spring配置文件.

    2. 名字其實隨意

    3. 創(chuàng)建完成之后右下角會出現(xiàn)選項, 點擊configure

    4. 在配置頁面直接點OK就行
    4. 在配置頁面直接點OK就行
  • 配置xml, 現(xiàn)階段就一句話, 具體配置如圖:


    就是掃描包, 包中所有的類都使用注解
  • <context:component-scan base-package="com.lzhr"/>是自動掃描包及子包中的組件, 這樣就不需要配置<bean>標(biāo)簽, 直接使用注解就可以了.

-mybatis配置

1.創(chuàng)建jdbc.properties配置文件

在resource文件夾中創(chuàng)建空白File, 后綴為jdbc.properties, 內(nèi)容如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/stu?useSSL=true
username=root
password=lzhr
#定義初始連接數(shù)
initialSize=0
#定義最大空閑
maxIdle=20
#定義最小空閑
minIdle=1

如圖:

創(chuàng)建properties文件

創(chuàng)建properties文件

創(chuàng)建properties文件
創(chuàng)建properties文件

2.使用generator生成mapper和xml文件

  • 創(chuàng)建generatorConfig.xml配置文件
創(chuàng)建generator.xml文件

需要填的內(nèi)容如下:

classPathEntry: 驅(qū)動包路徑

jdbcConnection: 數(shù)據(jù)配置

javaModelGenerator: 表對象的模型設(shè)置

sqlMapGenerator: mapper的xml文件設(shè)置

javaClientGenerator: mapper的接口文件設(shè)置

table: 表設(shè)置(可以設(shè)置多個表)

具體配置如下:

<generatorConfiguration>

    <!-- !!!! Driver Class Path !!!! -->
    <!-- !!!! 設(shè)置MySQL驅(qū)動路徑 !!!! -->
    <classPathEntry location="/Users/lizhongren1/maven/LocalWarehouse
    /mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.jar"/>

    <context id="context" targetRuntime="MyBatis3">
        <!-- !!!! 是否生成注釋, 一般都是false, 自動生成的注釋完全不能看, 還耽誤git同步 !!!! -->
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="false"/>
        </commentGenerator>

        <!-- !!!! Database Configurations !!!! -->
        <!-- !!!! 配置數(shù)據(jù)庫數(shù)據(jù) !!!! -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/stu?useSSL=true"
                        userId="root" password="lzhr"/>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- !!!! Model Configurations !!!! -->
        <!-- !!!! 設(shè)置生成的JavaBean所在的包 !!!! -->
        <javaModelGenerator targetPackage="com.lzhr.domain" 
                            targetProject="./src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- !!!! Mapper XML Configurations !!!! -->
        <!-- !!!! 配置Mapper的XML配置文件位置, 也可以設(shè)置到resource文件夾 !!!! -->
        <sqlMapGenerator targetPackage="com.lzhr.mapper" targetProject="./src/main/java">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- !!!! Mapper Interface Configurations !!!! -->
        <!-- !!!! 配置Mapper接口文件位置 !!!! -->
        <javaClientGenerator targetPackage="com.lzhr.mapper"
                             targetProject="./src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- !!!! Table Configurations !!!! -->
        <!-- !!!! 配置MySQL下的表設(shè)置 !!!! -->
        <table tableName="student"
               enableCountByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               enableUpdateByExample="false"/>
    </context>
</generatorConfiguration>
  • 創(chuàng)建執(zhí)行類文件.
public class MybatisTest {

    public void generator() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("src/main/resources/generatorConfig.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 {
            MybatisTest generatorSqlmap = new MybatisTest();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

  • 執(zhí)行main方法, 結(jié)構(gòu)如下圖


    因為在generator中的配置不同,位置有所不同
    因為在generator中的配置不同,位置有所不同

3. spring和batis整合

在applicationContext中配置Mybatis

設(shè)置說明:

propertyConfigurer: 讀取數(shù)據(jù)庫設(shè)置信息

dataSource: 配置連接池

sqlSessionFactory: 配置session工廠, 此步節(jié)省了mybatis本身應(yīng)該有的xml配置文件

org.mybatis.spring.mapper.MapperScannerConfigurer: 自動掃描mapper接口文件

transactionManager: 事務(wù)管理

    <bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties"/>
    </bean>

    <bean id="dataSource"
          class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">

        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>

        <!-- 初始化連接大小 -->
        <property name="initialSize" value="${initialSize}"></property>
        <!-- 連接池最大數(shù)量 -->
        <!--<property name="maxActive" value="${maxActive}"></property>-->
        <!-- 連接池最大空閑 -->
        <property name="maxIdle" value="${maxIdle}"></property>
        <!-- 連接池最小空閑 -->
        <property name="minIdle" value="${minIdle}"></property>
        <!-- 獲取連接最大等待時間 -->
        <!--<property name="maxWait" value="${maxWait}"></property>-->
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自動掃描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath*:mapper/*.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.lzhr.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

4. 完成后的項目結(jié)構(gòu)

如圖:

因為在generator中的配置不同,Mapper相關(guān)文件位置有所不同

-springMVC配置

  • 創(chuàng)建xxx-servlet.xml調(diào)度文件
  • 配置web.xml
  • 創(chuàng)建controller類
  • 創(chuàng)建jsp文件
  • 部署配置

1.創(chuàng)建xxx-servlet.xml文件

同樣在resources文件夾中創(chuàng)建, 命名規(guī)范一般是xxx-servlet.xml.

說明:

mvc:annotation-driven: 注解驅(qū)動
<context:component-scan base-package="com.lzhr"/>: 自動掃描組件包
mvc:default-servlet-handler: 處理servlet資源, servlet在找不到頁面的時候會去找靜態(tài)的內(nèi)容叔壤。
jspViewResolver: 視圖解析器基本配置, 例如下面的例子就是識別:/WEB-INF/pages/*.jsp

基本配置如下:

<?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:mvc="http://www.springframework.org/schema/mvc"
       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/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">
    
    <mvc:annotation-driven/>

    <context:component-scan base-package="com.lzhr"/>

    <mvc:default-servlet-handler/>

    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

2. 配置web.xml

找到在WEB-INF文件夾下的web.xml. 這里本來應(yīng)該配置各種servlet. 有了springmvc可以取代一大堆重復(fù)的配置標(biāo)簽.

  1. 更新web-app.
  2. 配置context-param: 這里主要配置spring的xml配置文件的地址:
  3. 配置監(jiān)聽器: 這里很重要, 不然會匹配不到mapper等接口文件,導(dǎo)致spring的注入失敗.
  4. 配置servlet和servlet-mapping: 配置的結(jié)果就是把所有的servlet都交給springmvc來處理.
  5. 配置filter: 可以解決亂碼問題.

詳細(xì)配置如下:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <display-name>Archetype Created Web Application</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:SSM-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
        <servlet-name>AServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>SpringEncoding</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>
    </filter>
    <filter-mapping>
        <filter-name>SpringEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

3. 創(chuàng)建Controller類

在controller包中創(chuàng)建controller類, 負(fù)責(zé)處理servlet.
代碼如下, 含義是處理"/"的URL, 顯示index.jsp頁面:

@Controller
public class MainController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String frontPage(){
        return "index";
    }
}

4. 在WEB-INF文件夾中創(chuàng)建jsp文件

可以自己定義目錄歸納整理jsp

-一些坑

1.tomcat包

2.

-常見錯誤和解決

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末效诅,一起剝皮案震驚了整個濱河市适秩,隨后出現(xiàn)的幾起案子斋配,更是在濱河造成了極大的恐慌,老刑警劉巖寄悯,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萤衰,死亡現(xiàn)場離奇詭異,居然都是意外死亡猜旬,警方通過查閱死者的電腦和手機脆栋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洒擦,“玉大人筹吐,你說我怎么就攤上這事∶囟簦” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵嘉竟,是天一觀的道長邦危。 經(jīng)常有香客問我,道長舍扰,這世上最難降的妖魔是什么倦蚪? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮边苹,結(jié)果婚禮上陵且,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好慕购,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布聊疲。 她就那樣靜靜地躺著,像睡著了一般沪悲。 火紅的嫁衣襯著肌膚如雪获洲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天殿如,我揣著相機與錄音贡珊,去河邊找鬼。 笑死涉馁,一個胖子當(dāng)著我的面吹牛门岔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烤送,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼寒随,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胯努?” 一聲冷哼從身側(cè)響起牢裳,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叶沛,沒想到半個月后蒲讯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡灰署,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年判帮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溉箕。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡晦墙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肴茄,到底是詐尸還是另有隱情晌畅,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布寡痰,位于F島的核電站抗楔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拦坠。R本人自食惡果不足惜连躏,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贞滨。 院中可真熱鬧入热,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至郑气,卻和暖如春幅垮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尾组。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工忙芒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讳侨。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓呵萨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跨跨。 傳聞我的和親對象是個殘疾皇子潮峦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)勇婴,斷路器忱嘹,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,778評論 6 342
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司耕渴,掛了不少拘悦,但最終還是拿到小米、百度橱脸、阿里假抄、京東葵擎、新浪、CVTE彻犁、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,218評論 11 349
  • [手把手教程][JavaWeb]SSM框架驗證镊辕、修復(fù)和實例 手把手驗證上期的SSM項目:優(yōu)雅的SpringMvc+...
    Clone丶記憶閱讀 16,942評論 49 76
  • 最近兩會剛結(jié)束耿眉,一片改革的欣欣向榮。我最近聽到幾個非常新穎须眷、有趣的想法乌叶,覺得挺觸動的,分享給大家柒爸。 01 一個企業(yè)...
    韓同志閱讀 208評論 0 2