使用intelliJ IDE開發java web項目


 <!-- spring版本號 -->

<spring.version>4.3.0.RELEASE</spring.version>

<!-- mybatis版本號 -->
<mybatis.version>3.4.4</mybatis.version>

<!-- mysql驅動版本號 -->
<mysql-driver.version>5.1.40</mysql-driver.version>

<!-- log4j日志包版本號 -->
<log4j.version>2.7</log4j.version>
<commons-logging.version>1.2</commons-logging.version>

<!-- 對象轉 jackson 版本號 -->
<jackson.version>1.9.13</jackson.version>

 

 

使用maven 開發springmvc apring mybatis web項目。

1.File -> New Project ,進入創建項目窗口

 

 2 出現以下界面 

3 按照如上選項進行點擊,點next

4 上面兩項隨便填,點擊next

上面選項中可以直接使用默認配置。我修改的local repository是本地倉庫位置,可以改也可以不改。下面在Properties中添加一個參數 archetypeCatalog=internal,不加這個參數,在maven生成骨架的時候將會非常慢,有時候直接卡住。來自網上的解釋:archetypeCatalog表示插件使用的archetype元數據,不加這個參數時默認為remote,local,即中央倉庫archetype元數據,由於中央倉庫的archetype太多了所以導致很慢,指定internal來表示僅使用內部元數據。

5 點擊next

這個我沒有修改,點擊finish

6 生成maven的項目骨架之后,我們還需要手動在 src/main 下創建 java目錄。現在可以直接編寫了

 到此為止,項目的框架基本搭建完成。

 

7 下面進行pom.xml進行配置

 

<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.huitong</groupId>
  <artifactId>webapp1</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>webapp1 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- spring版本號 -->
    <spring.version>4.3.0.RELEASE</spring.version>

    <!-- mybatis版本號 -->
    <mybatis.version>3.4.4</mybatis.version>

    <!-- mysql驅動版本號 -->
    <mysql-driver.version>5.1.40</mysql-driver.version>

    <!-- log4j日志包版本號 -->
    <log4j.version>2.7</log4j.version>
    <commons-logging.version>1.2</commons-logging.version>

    <!-- 對象轉 jackson 版本號 -->
    <jackson.version>1.9.13</jackson.version>


  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- 添加jstl依賴 -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <!-- javaee 7.0 -->
    <!-- https://mvnrepository.com/artifact/javax/javaee-api -->
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>7.0</version>
    </dependency>


    <!-- ######## spring mvc 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- ######## spring mvc 依賴包 end ################################-->

    <!-- ######## spring core 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>

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

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- ######## spring core 依賴包 end ################################-->

    <!-- ######## mybatis core 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/org.ow2.asm/asm -->
    <dependency>
      <groupId>org.ow2.asm</groupId>
      <artifactId>asm</artifactId>
      <version>5.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/cglib/cglib -->
    <dependency>
      <groupId>cglib</groupId>
      <artifactId>cglib</artifactId>
      <version>3.2.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <!-- ######## mybatis core 依賴包 end ################################-->

    <!-- ######## mybatis spring 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>
    <!-- ######## mybatis spring 依賴包 end ################################-->


    <!-- ######## DBconnector 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>${mysql-driver.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
    <!-- ######## DBconnector 依賴包 end ################################-->

    <!-- ######## translation 依賴包 start ################################-->
    <!-- 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-tx -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- ######## translation 依賴包 end ################################-->

    <!-- ######## AOP 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
    <dependency>
      <groupId>aopalliance</groupId>
      <artifactId>aopalliance</artifactId>
      <version>1.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.8.10</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.10</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- ######## AOP 依賴包 end ################################-->


    <!-- ######## json 依賴包 start ################################-->
    <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl -->
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-core-asl</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <!-- ######## json 依賴包 end ################################-->




    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>${commons-logging.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${log4j.version}</version>
    </dependency>



  </dependencies>
  <build>
    <finalName>webapp1</finalName>
  </build>
</project>
View Code

寫完pom.xml文件后需要更新依賴,

點擊更新。

 

 8 按照常規步驟開發SSM項目即可。

可以參考SSM整合開發流程

 

9 spring.xml項目配置,mybatis配置文件指定,spring配置,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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">

    <!-- 1 dataSource-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql:///day17?useSSL=true"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>
        <property name="initialPoolSize" value="3"/>
        <property name="maxPoolSize" value="10"/>
        <property name="maxStatements" value="20"/>
        <property name="acquireIncrement" value="2"/>
    </bean>

    <!-- 2 sqlSessionFactoryBean-->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis/mybatis.xml"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 3 dao/service -->
    <bean id="studentDao" class="com.huitong.dao.StudentDao">
        <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
    </bean>

    <bean id="studentService" class="com.huitong.service.StudentService">
        <property name="studentDao" ref="studentDao"/>
    </bean>
    

    <!-- 4 scan -->
    <context:component-scan base-package="com.huitong.action"/>

    <!-- 5 transaction -->
    <!-- 5.1 txManager -->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 5.2 txAdvice -->
    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true"/>
            <tx:method name="query*" read-only="true"/>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>

    <!-- 5.3 AOP -->
    <aop:config>
        <aop:pointcut id="pt" expression="execution(* com.huitong.service.*.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>

    </aop:config>

    <!-- 6 internalResourceViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp/"/>
        <property name="suffix" value=".jsp"/>

    </bean>
    
    <mvc:interceptors>
        <mvc:interceptor>
            <!-- 先匹配所有路徑,然后排除不需要檢查的路徑 -->
            <mvc:mapping path="/**"/>

            <!-- 與登錄相關的請求 -->
            <mvc:exclude-mapping path="/*.jsp"/>
            <mvc:exclude-mapping path="/student/login.action"/>
            <mvc:exclude-mapping path="/student/register.action"/>

            <!-- 以下是靜態資源 -->
            <mvc:exclude-mapping path="/images/**" />
            <mvc:exclude-mapping path="/css/**" />
            <mvc:exclude-mapping path="/font/**" />
            <mvc:exclude-mapping path="/js/**" />
            <mvc:exclude-mapping path="/datepicker/**" />

            <!-- 用戶是否已經登錄的檢查bean -->
            <bean class="com.huitong.util.StudentAuth"/>
                
        </mvc:interceptor>
    </mvc:interceptors>

</beans>
View Code

 

 

10 項目部署,這幾步很關鍵。可以參考 圖文詳解 IntelliJ IDEA 15 創建普通 Java Web 項目

 

 

常見問題

1 maven項目中java文件夾不能新建package和class,需要做如下設置

 

2 在idea中安裝mybatis插件

選擇file -> setting -> plugins,搜索mybatis,這時因為沒有安裝過插件,所以會出現如圖所示:

點擊Browse,這是會彈出如下窗口,intellij idea會自動從網絡搜索插件,方便下載,如圖所示:

點擊Install plugin即可自動下載安裝,之后重啟intellij idea即可。

 

3 在進行mapper文件映射時出現 URI is not registered.解決辦法如下

鼠標點擊紅色字,然后Intellij出現小紅燈,選擇Fetch external resource即可解決 

 

4 MAVEN項目jar包依賴導入問題解決,

在新建項目后,項目的路徑中會生成pom.xml文件和項目名.iml文件。新建項目后,IDEA不會自動刷新Maven的依賴。刷新Maven配置的方法為:

(1)右鍵單擊項目;

(2)在彈出菜單中選擇Maven|Reimport菜單項。

此時,IDEA將通過網絡自動下載相關依賴,並存放在Maven的本地倉庫中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM