Maven的一些小細節(包含SSM整合)
阿新 • • 發佈:2019-02-09
更改倉庫地址
- 進入:
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啥的
自己去看程式碼