Gradle-創(chuàng)建 IDEA Java Spring 項目

1.創(chuàng)建 Gradle Java 項目

1.new projectGradle—選擇對應SDKJavaNext
?選擇gradle項目步责,自己環(huán)境中的SDK(最低版本為JDK1.8)厨相,創(chuàng)建JAVA項目等舔。

new project1.png


2.輸入GroupId—輸入artifictIdNext腥例。
?輸入groupId,命名請遵循相應命名規(guī)范狡忙。公司-com;組織-org;個人-pers址芯。

new project1.png


3.選擇Use auto-import—選擇Use local gradle distributionNext灾茁。
?選擇自動導入,使用本地gradle環(huán)境谷炸,選擇后會自動出現(xiàn)本地配置的GRADLE_HOME路徑,然后選擇本地的jdk配置即可北专。

new project3.png


4.輸入Project name—選擇Project locationFinish
?輸入項目名稱旬陡,選擇相對應的項目存儲路徑拓颓,點擊Finish,一個gradle java項目創(chuàng)建完成描孟。

new project4.png


5.看到項目中出現(xiàn)文件build.gradle并且Build:Sync無異常驶睦,說明gradle java項目已創(chuàng)建成功。

gradle java.png


6.點擊filesettingsBuild,Excution,deploymentBuild ToolsGradle—選擇Offline匿醒。
?將gradle設置為離線工作模式场航,并且可查看到 service directory pathGRADLE_USER_HOME路徑,該路徑為gradle jar包存放地址廉羔。

setting.png


2.Gradle build.gradle配置文件介紹

//創(chuàng)建項目輸入groupId
group 'pers.gradle'
//創(chuàng)建項目所輸入的版本
version '1.0-SNAPSHOT'
//指定運行環(huán)境溉痢,java
apply plugin: 'java'
//jdk的版本,1.8
sourceCompatibility = 1.8
/**
 * 指定所使用倉庫的路徑
 * mavenCentral()憋他,中央倉庫孩饼,項目中所使用的jar包都會從中央倉庫下載到本地倉庫。
 *                 若本地倉庫已經擁有相應的jar包竹挡,則不會重復下載
 *                 可以使用命令maven { url "http://maven.aliyun.com/nexus/content/groups/public" }指定maven的遠程倉庫地址
 * mavenLocal()本地倉庫捣辆,與GRADLE_USER_HOME配置的路徑一致。
 * */
repositories {
    mavenLocal()
    maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
    mavenCentral()
}
/**
 * gradle所有的jar包文件坐標都在dependencies屬性內放置
 * 每一個jar包都具備以下特點
 * 1.scope(作用域):gradle支持compile此迅、runtime汽畴、testCompile、testRuntime四種scope
 *   compile:jar包在編譯期與運行期依賴耸序。
 *   runtime:jar包在運行期依賴忍些。
 *   testCompile:jar包在測試編譯期與運行期依賴。
 *   testRuntime:jar包在測試運行期依賴坎怪。
 *   補充:
 *   providedCompile:jar包/依賴代碼 僅在編譯的時候需要罢坝,但是在運行時不需要依賴。
 *   providedCompile與compile,runtime區(qū)別:
 *   compile: 前提:apply plugin: 'war'或者apply plugin: 'java'
 *   providedCompile:前提:apply plugin: 'war'搅窿,若前提為'java',則使用compileOnly
 *   runtime:前提:apply plugin: 'war'
 *   以上所說的前提嘁酿,如果不正確配置的話隙券,就會遇到依賴包無法導入,以及runtime以及providedCompile無法使用的情況闹司。
 * 2. group:與maven的groupId一致娱仔。
 *    name:與maven的artifactId一致。
 *    version:與maven的version一致游桩。
 */
dependencies {
    //gradle jar包坐標可以訪問牲迫,maven中央倉庫[https://mvnrepository.com],找到相對應的jar包借卧,選擇[gradle]選項卡盹憎,復制該地址即可。
    testCompile group: 'junit', name: 'junit', version: '4.12'
    //引入spring依賴
    compile group: 'org.springframework', name: 'spring-context', version: '5.1.5.RELEASE'
    //引入lombok依賴
    //@Data注解在類上铐刘,會為類的所有屬性自動生成setter/getter陪每、equals、canEqual镰吵、hashCode奶稠、toString方法,如為final屬性捡遍,則不會為該屬性生成setter方法锌订。
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.2'

}

3.Gradle settings.gradle配置文件介紹

//根項目名稱
rootProject.name = 'gradle-example'


4.Gradle 項目結構

project structure.png

5.Gradle Java Spring 項目

1.model文件夾下編寫實體類User.java

package pers.gradle.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * 用戶信息實體
 * @Data 添加getter画株、setter方法
 * @NoArgsConstructor 添加無參構造器
 * @AllArgsConstructor 添加全參構造器
 * @AllArgsConstructor 添加鏈式調用
 * @ToString 添加toString
 * @author Leo
 * @date 11:53 2019/5/17
 * @param
 * @return
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString
public class User {
    private Long id;
    private String name;
    private Integer age;
}


2.service文件夾下編寫接口類UserService.java辆飘。

package pers.gradle.service;

import pers.gradle.model.User;

import java.util.List;
/**
 * 用戶信息service
 * @author Leo
 * @date 10:37 2019/5/22
**/
public interface UserService {
    /**
     * getUserList() 獲取User列表
     * @author Leo
     * @date 10:27 2019/5/22
     * @return java.util.List<pers.gradle.model.User>
    **/
    List<User> getUserList();
}


3.service文件夾下編寫接口實現(xiàn)類UserServiceImpl.java

package pers.gradle.service;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Service;
import pers.gradle.dao.UserDao;
import pers.gradle.model.User;

import java.util.List;

/**
 * 用戶信息service實現(xiàn)
 * @author Leo
 * @date 13:25 2019/5/22
**/
@Service
public class UserServiceImpl implements UserService{

    @Override
    public List<User> getUserList() {
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");
        UserDao userDao=applicationContext.getBean(UserDao.class);
        return userDao.getUserList();
    }
}

4.dao文件夾下編寫接口類UserDao.java谓传。

package pers.gradle.dao;

import org.springframework.stereotype.Repository;
import pers.gradle.model.User;

import java.util.List;

/**
 * 用戶信息dao
 * @author Leo
 * @date 13:25 2019/5/22
**/
@Repository
public interface UserDao {
    /**
     * getUserList() 獲取用戶信息列表
     * @author Leo
     * @date  2019/5/22
     * @return java.util.List<pers.gradle.model.User>
     **/
    List<User> getUserList();
}


5.dao文件夾下編寫接口實現(xiàn)類UserDaoImpl.java蜈项。

package pers.gradle.dao;

import pers.gradle.model.User;

import java.util.ArrayList;
import java.util.List;
/**
 * 用戶信息dao實現(xiàn)類,模擬數(shù)據庫返回結果
 * @author Leo
 * @date 13:23 2019/5/22
 * @param
 * @return
**/
public class UserDaoImpl implements UserDao{


    @Override
    public List<User> getUserList() {
        List<User> userList=new ArrayList<>();
        //鏈式調用
        User userZs=new User().setId(1L).setName("張三").setAge(18);
        userList.add(userZs);
        //鏈式調用
        User userLs=new User().setId(2L).setName("李四").setAge(20);
        userList.add(userLs);

        return userList;
    }
}

6.resources文件夾下編寫配置文件beans.xml续挟。

<?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-3.0.xsd">

    <!--userService-->
    <bean id="userService" class="pers.gradle.service.UserServiceImpl"/>
    <!--userDao-->
    <bean id="userDao" class="pers.gradle.dao.UserDaoImpl"/>

</beans>

7.test.java.pers.gradle文件夾下編寫測試類UserTest.java紧卒。

package pers.gradle;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pers.gradle.model.User;
import pers.gradle.service.UserService;

import java.util.List;

public class UserTest {
    @Test
    public void getUserList(){
        //獲取spring容器
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");
        //從容器中獲取UserService對象
        UserService userService=applicationContext.getBean(UserService.class);
        //調用方法
        List<User> userList = userService.getUserList();
        //輸出用戶列表
        userList.forEach(u-> System.out.println("用戶"+u.getName()+":"+u));
    }
}


8.獲取輸出結果。

用戶張三:User(id=1, name=張三, age=18)
用戶李四:User(id=2, name=李四, age=20)

6.Github地址

?gradle-springboot-web←戳這里.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末诗祸,一起剝皮案震驚了整個濱河市跑芳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌直颅,老刑警劉巖博个,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異功偿,居然都是意外死亡盆佣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來共耍,“玉大人虑灰,你說我怎么就攤上這事”远担” “怎么了穆咐?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長佃蚜。 經常有香客問我,道長着绊,這世上最難降的妖魔是什么谐算? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮归露,結果婚禮上洲脂,老公的妹妹穿的比我還像新娘。我一直安慰自己剧包,他們只是感情好恐锦,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疆液,像睡著了一般一铅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上堕油,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天潘飘,我揣著相機與錄音,去河邊找鬼掉缺。 笑死卜录,一個胖子當著我的面吹牛,可吹牛的內容都是我干的眶明。 我是一名探鬼主播艰毒,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搜囱!你這毒婦竟也來了丑瞧?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蜀肘,失蹤者是張志新(化名)和其女友劉穎嗦篱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幌缝,經...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡灸促,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浴栽。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡荒叼,死狀恐怖,靈堂內的尸體忽然破棺而出典鸡,到底是詐尸還是另有隱情被廓,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布萝玷,位于F島的核電站嫁乘,受9級特大地震影響,放射性物質發(fā)生泄漏球碉。R本人自食惡果不足惜蜓斧,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望睁冬。 院中可真熱鬧挎春,春花似錦、人聲如沸豆拨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽施禾。三九已至脚线,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弥搞,已是汗流浹背殉挽。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拓巧,地道東北人斯碌。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像肛度,于是被迫代替她去往敵國和親傻唾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內容