1. 程式人生 > >Maven的一些小細節(包含SSM整合)

Maven的一些小細節(包含SSM整合)

更改倉庫地址

  • 進入:
    C:\Users\Bam\Desktop\apache-maven-3.5.3-bin\apache-maven-3.5.3\conf
    這裡寫圖片描述

增加國內倉庫映象

  • 阿里雲
<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url
>
</mirror>
  • 開源中國
<mirror>  
        <id>CN</id>  
        <name>OSChina Central</name>                                                                                     
        <url>http://maven.oschina.net/content/groups/public/</url 
        <mirrorOf
>
central</mirrorOf> </mirror>
  • 官方中國倉庫映象
<mirror>
         <id>maven.net.cn</id>
         <name>oneof the central mirrors in china</name>
         <url>http://maven.net.cn/content/groups/public/</url>
         <mirrorOf>central</mirrorOf>
</mirror>

dependency的scope(依賴的範圍)

  • compile:編譯範圍,指A在編譯時依賴B,此範圍為預設依賴範圍。編譯範圍的依賴會用在編譯、測試、執行,由於執行時需要所以編譯範圍的依賴會被打包。

  • provided:provided依賴只有在當JDK或者一個容器已提供該依賴之後才使用, provided依賴在編譯和測試時需要,在執行時不需要,比如:servlet api被tomcat容器提供。

  • runtime:runtime依賴在執行和測試系統的時候需要,但在編譯的時候不需要。比如:jdbc的驅動包。由於執行時需要所以runtime範圍的依賴會被打包。

  • test:test範圍依賴 在編譯和執行時都不需要,它們只有在測試編譯和測試執行階段可用,比如:junit。由於執行時不需要所以test範圍依賴不會被打包。

maven的依賴管理

  • 開啟方法:
    這裡寫圖片描述

  • 結果:
    這裡寫圖片描述

SSM整合

整合SpringMVC

  • pom.xml裡邊導springmvc的包
    這裡寫圖片描述
  • 配置webapp中的web.xml
    這裡寫圖片描述
  • 配置applicationContext.xml
    這裡寫圖片描述
  • controller裡邊寫程式碼
    這裡寫圖片描述
  • 搞定
    這裡寫圖片描述

整合mybatis

  • pom.xml裡邊導包
    <!--Mybatis 核心包-->
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.4</version>
    </dependency>

    <!-- Mybatis spring整合包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>

    <!-- 資料庫驅動 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.33</version>
    </dependency>

    <!--spring對於orm框架的支援 springjdbc 以及spring tx-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.0.4.RELEASE</version>
    </dependency>

    <!--spring 測試包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.0.4.RELEASE</version>
      <scope>test</scope>
    </dependency>

    <!-- 資料庫連線池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

小插曲

java.lang.IllegalStateException: Failed to load ApplicationContext
報錯原因:沒有匯入servlet-api的依賴包

 <dependency>
      <groupId>tomcat</groupId>
      <artifactId>servlet-api</artifactId>
      <version>5.5.23</version>
</dependency>

佈局

這裡寫圖片描述

  • applicationContext.xml、mybatis等檔案寫在resources資料夾的根目錄下
  • applicationContext.xml(可以命名為spring-mvc.xml)裡邊放的是spring的例如註解掃描、連線池、註解管理等功能,也可以配置mybatis的、sqlSessionFactory等功能。
  • Mapper.xml需要放到與java程式碼對應的資料夾中,這樣打包時候會把他們放置在同一個資料夾下。
  • web.xml永遠在webapp裡邊,別亂放。
  • web.xml裡頭放的是mvc的基礎配置——DispatcherServlet等
  • test資料夾裡邊放置的是測試用例,記得格式(上邊兩個註解)
import com.bamzhy.bean.User;
import com.bamzhy.dao.UserDao;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class testDao {
    @Autowired
    UserDao dao;

    @Test
    public void testUser(){
        User user = dao.findUserById(1);
        System.out.println(user);
    }

}

整合例項

不想寫了…一個個截圖真麻煩,那些寫教程的真偉大。

事務管理

workspace——maventest——UserService啥的
自己去看程式碼