IDEA+Maven搭建Spring環(huán)境的詳細(xì)教程
1. Spring簡(jiǎn)介
Spring是一個(gè)輕量級(jí)控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。
2. Spring的優(yōu)勢(shì)
1.方便解耦, 簡(jiǎn)化開(kāi)發(fā): 通過(guò)Spring提供的IOC容器, 可以將對(duì)象間的依賴關(guān)系交由Spring進(jìn)行控制, 避免硬編碼所造成的過(guò)度耦合。
2.AOP編程的支持: 通過(guò)AOP功能方便進(jìn)行面向切面編程, 許多不容易用傳統(tǒng)OOP實(shí)現(xiàn)的功能可以通過(guò)AOP輕松實(shí)現(xiàn)。
3.聲明式事物編程: 通過(guò)聲明方式靈活的進(jìn)行事務(wù)管理, 提高開(kāi)發(fā)效率和質(zhì)量。
4.方便程序測(cè)試: 可以用非容器依賴的編程方式進(jìn)行幾乎所有的測(cè)試工作。
3. 搭建開(kāi)發(fā)環(huán)境
3.1 創(chuàng)建項(xiàng)目
使用IDEA + Maven搭建。
- File --> new Project 。
- 選擇Maven, 然后next。
4. 根據(jù)需要設(shè)置一些參數(shù),然后點(diǎn)Finish。
Name: 項(xiàng)目名稱。
Location: 存儲(chǔ)路徑。
GroupId: 項(xiàng)目組織名稱, 通常是域名。
ArtifactId: 項(xiàng)目名稱。
Version: 版本。
3.2 編寫(xiě)測(cè)試用例
在pom.xml中添加Spring和junit的依賴。
<dependencies> <!-- scope: 依賴范圍, 有以下幾種: 1. compile,可以不寫(xiě),默認(rèn)的范圍,適用于所有階段,會(huì)隨著項(xiàng)目一起發(fā)布。 2. provided,類似compile,期望JDK、容器或使用者會(huì)提供這個(gè)依賴。如servlet.jar。 3. runtime,只在運(yùn)行時(shí)使用,如JDBC驅(qū)動(dòng),適用運(yùn)行和測(cè)試階段。 4. test,只在測(cè)試時(shí)使用,用于編譯和運(yùn)行測(cè)試代碼。不會(huì)隨項(xiàng)目發(fā)布。 5. system,類似provided,需要顯式提供包含依賴的jar,Maven不會(huì)在Repository中查找它。 --> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.10.RELEASE</version> </dependency> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies>
編寫(xiě)Java代碼
// UserDao接口 public interface UserDao { public void selectUser(); } // UserDao實(shí)現(xiàn)類 public class UserDaoImpl implements UserDao { public void selectUser() { System.out.println("UserDaoImpl.selectUser()"); } }
編寫(xiě)Spring配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 這個(gè)配置相當(dāng)于UserDao userDao = new UserDaoImpl(); --> <bean id="userDao" class="spring.dao.impl.UserDaoImpl"></bean> </beans>
編寫(xiě)測(cè)試用例
// 測(cè)試類 public class UserDaoTest { @Test public void test() { BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao) factory.getBean("userDao"); userDao.selectUser(); } }
運(yùn)行測(cè)試用例
到此這篇關(guān)于IDEA+Maven搭建Spring環(huán)境的詳細(xì)教程的文章就介紹到這了,更多相關(guān)IDEA+Maven搭建Spring環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中@DateTimeFormat @JsonFormat失效原因及測(cè)試填坑
本文主要介紹了Java中@DateTimeFormat @JsonFormat失效原因及測(cè)試填坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06java阻塞隊(duì)列BlockingQueue詳細(xì)解讀
這篇文章主要介紹了java阻塞隊(duì)列BlockingQueue詳細(xì)解讀,在新增的Concurrent包中,BlockingQueue很好的解決了多線程中,如何高效安全“傳輸”數(shù)據(jù)的問(wèn)題,通過(guò)這些高效并且線程安全的隊(duì)列類,為我們快速搭建高質(zhì)量的多線程程序帶來(lái)極大的便利,需要的朋友可以參考下2023-10-10springBoot基于webSocket實(shí)現(xiàn)掃碼登錄
最近做了個(gè)新項(xiàng)目,涉及到掃碼登錄。之前項(xiàng)目使用的是 ajax輪詢的方式。感覺(jué)太low了。所以這次用webSocket的方式進(jìn)行實(shí)現(xiàn),感興趣的可以了解一下2021-06-06SpringBoot請(qǐng)求響應(yīng)方式示例詳解
這篇文章主要介紹了SpringBoot請(qǐng)求響應(yīng)的相關(guān)操作,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06SpringSecurity從數(shù)據(jù)庫(kù)中獲取用戶信息進(jìn)行驗(yàn)證的案例詳解
這篇文章主要介紹了SpringSecurity從數(shù)據(jù)庫(kù)中獲取用戶信息進(jìn)行驗(yàn)證的案例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01java枚舉enum,根據(jù)value值獲取key鍵的操作
這篇文章主要介紹了java枚舉enum,根據(jù)value值獲取key鍵的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02