1.創(chuàng)建 Gradle Java 項(xiàng)目
1.new project
—Gradle
—選擇對應(yīng)SDK
—Java
—Next
萍摊。
?選擇gradle項(xiàng)目萝快,自己環(huán)境中的SDK(最低版本為JDK1.8)椰拒,創(chuàng)建JAVA項(xiàng)目笔咽。
2.輸入GroupId
—輸入artifictId
—Next
鳍徽。
?輸入groupId呈础,命名請遵循相應(yīng)命名規(guī)范舆驶。公司-com;組織-org;個(gè)人-pers而钞。
3.選擇Use auto-import
—選擇Use local gradle distribution
—Next
沙廉。
?選擇自動(dòng)導(dǎo)入,使用本地gradle環(huán)境臼节,選擇后會(huì)自動(dòng)出現(xiàn)本地配置的GRADLE_HOME
路徑,然后選擇本地的jdk
配置即可撬陵。
4.輸入Project name
—選擇Project location
—Finish
。
?輸入項(xiàng)目名稱巨税,選擇相對應(yīng)的項(xiàng)目存儲(chǔ)路徑粉臊,點(diǎn)擊Finish,一個(gè)gradle java項(xiàng)目創(chuàng)建完成远寸。
5.看到項(xiàng)目中出現(xiàn)文件build.gradle
并且Build:Sync
無異常驰后,說明gradle java項(xiàng)目已創(chuàng)建成功矗愧。
6.點(diǎn)擊file
—settings
—Build,Excution,deployment
—Build Tools
—Gradle
—選擇Offline
。
?將gradle設(shè)置為離線工作模式唉韭,并且可查看到 service directory path
為GRADLE_USER_HOME
路徑夜涕,該路徑為gradle jar包存放地址。
2.Gradle build.gradle配置文件介紹
//創(chuàng)建項(xiàng)目輸入groupId
group 'pers.gradle'
//創(chuàng)建項(xiàng)目所輸入的版本
version '1.0-SNAPSHOT'
//指定運(yùn)行環(huán)境属愤,java
apply plugin: 'java'
//指定為java web項(xiàng)目
apply plugin: 'war'
//jdk的版本女器,1.8
sourceCompatibility = 1.8
/**
* 指定所使用倉庫的路徑
* mavenCentral(),中央倉庫春塌,項(xiàng)目中所使用的jar包都會(huì)從中央倉庫下載到本地倉庫。
* 若本地倉庫已經(jīng)擁有相應(yīng)的jar包,則不會(huì)重復(fù)下載
* 可以使用命令maven { url "http://maven.aliyun.com/nexus/content/groups/public" }指定maven的遠(yuǎn)程倉庫地址
* mavenLocal()本地倉庫只壳,與GRADLE_USER_HOME配置的路徑一致俏拱。
* */
repositories {
mavenLocal()
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
mavenCentral()
}
/**
* gradle所有的jar包文件坐標(biāo)都在dependencies屬性內(nèi)放置
* 每一個(gè)jar包都具備以下特點(diǎn)
* 1.scope(作用域):gradle支持compile、runtime吼句、testCompile锅必、testRuntime四種scope
* compile:jar包在編譯期與運(yùn)行期依賴。
* runtime:jar包在運(yùn)行期依賴惕艳。
* testCompile:jar包在測試編譯期與運(yùn)行期依賴搞隐。
* testRuntime:jar包在測試運(yùn)行期依賴。
* 補(bǔ)充:
* providedCompile:jar包/依賴代碼 僅在編譯的時(shí)候需要远搪,但是在運(yùn)行時(shí)不需要依賴劣纲。
* providedCompile與compile,runtime區(qū)別:
* compile: 前提:apply plugin: 'war'或者apply plugin: 'java'
* providedCompile:前提:apply plugin: 'war'癞季,若前提為'java',則使用compileOnly
* runtime:前提:apply plugin: 'war'
* 以上所說的前提,如果不正確配置的話废睦,就會(huì)遇到依賴包無法導(dǎo)入,以及runtime以及providedCompile無法使用的情況净蚤。
* 2. group:與maven的groupId一致。
* name:與maven的artifactId一致橘荠。
* version:與maven的version一致哥童。
*/
dependencies {
//gradle jar包坐標(biāo)可以訪問匀泊,maven中央倉庫[https://mvnrepository.com],找到相對應(yīng)的jar包躲因,選擇[gradle]選項(xiàng)卡大脉,復(fù)制該地址即可。
//引入spring依賴
compile group: 'org.springframework', name: 'spring-context', version: '5.1.5.RELEASE'
//引入spring-web依賴
compile group: 'org.springframework', name: 'spring-web', version: '5.1.5.RELEASE'
//引入spring-webmvc依賴
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.1.5.RELEASE'
//引入servlet依賴
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1'
//引入jsp依賴
providedCompile group: 'javax.servlet', name: 'jsp-api', version: '2.0'
//引入lombok依賴
//@Data注解在類上,會(huì)為類的所有屬性自動(dòng)生成setter/getter抛杨、equals、canEqual屈嗤、hashCode饶号、toString方法,如為final屬性算谈,則不會(huì)為該屬性生成setter方法。
providedCompile group: 'org.projectlombok', name: 'lombok', version: '1.18.2'
}
3.Gradle settings.gradle配置文件介紹
//根項(xiàng)目名稱
rootProject.name = 'gradle-web'
4.Gradle 項(xiàng)目結(jié)構(gòu)
5.Gradle JAVA SpringMvc Web項(xiàng)目
1.在model
文件夾下編寫實(shí)體類User.java
屿岂。
package pers.gradle.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
* 用戶信息實(shí)體
* @Data 添加getter、setter方法
* @NoArgsConstructor 添加無參構(gòu)造器
* @AllArgsConstructor 添加全參構(gòu)造器
* @AllArgsConstructor 添加鏈?zhǔn)秸{(diào)用
* @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
文件夾下編寫接口實(shí)現(xiàn)類UserServiceImpl.java
。
package pers.gradle.service;
import org.springframework.beans.factory.annotation.Autowired;
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實(shí)現(xiàn)
* @author Leo
* @date 13:25 2019/5/22
**/
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> getUserList() {
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
文件夾下編寫接口實(shí)現(xiàn)類UserDaoImpl.java
剥啤。
package pers.gradle.dao;
import org.springframework.stereotype.Component;
import pers.gradle.model.User;
import java.util.ArrayList;
import java.util.List;
/**
* 用戶信息dao實(shí)現(xiàn)類
* @author Leo
* @date 13:23 2019/5/22
* @param
* @return
**/
@Component
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);
User userWw=new User().setId(3L).setName("王五").setAge(30);
userList.add(userWw);
return userList;
}
}
6.在controller
文件夾下編寫類UserController.java
。
package pers.gradle.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import pers.gradle.model.User;
import pers.gradle.service.UserService;
import java.util.List;
/**
* 獲取用戶列表
* @author Leo
* @date 18:48 2019/5/22
**/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* getUserList()
* @author Leo
* @date 18:49 2019/5/22
* @param model
* @return java.lang.String
**/
@RequestMapping("/list")
public String toList(Model model){
List<User> users=userService.getUserList();
model.addAttribute("users",users);
return "list";
}
}
7.在webpages
文件夾下編寫頁面list.jsp
。
<%--
Created by IntelliJ IDEA.
User: admin
Date: 2019/5/22
Time: 18:50
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!--引入jstl標(biāo)簽-->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>用戶列表</title>
<!-- 表格樣式-->
<style type="text/css">
table.gridtable {
font-family: verdana,arial,sans-serif;
font-size:11px;
color:#333333;
border: 1px #666666;
border-collapse: collapse;
}
table.gridtable th {
padding: 8px;
border: 1px solid #666666;
background-color: #dedede;
}
table.gridtable td {
padding: 8px;
border: 1px solid #666666;
background-color: #ffffff;
}
</style>
</head>
<body>
<div>
<table class="gridtable">
<tr>
<th>id</th>
<th>姓名</th>
<th>年齡</th>
</tr>
<!--循環(huán)輸入表格內(nèi)容-->
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
8.在resources
文件夾下編寫配置文件springmvc.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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--配置組件掃描-->
<context:component-scan base-package="pers.gradle"/>
<!--處理器映射器,處理器解析器-->
<mvc:annotation-driven />
<!--視圖解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--視圖所在文件路徑-->
<property name="prefix" value="/WEB-INF/webpages/" />
<!--視圖文件類型-->
<property name="suffix" value=".jsp" />
</bean>
<!--靜態(tài)資源釋放-->
<mvc:default-servlet-handler />
</beans>
9.在WEB-INF
文件夾下編寫配置文件web.xml
野舶。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<!--配置springmvc核心servlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
10.配置Tomcat
Web服務(wù)器供炼。
?1.點(diǎn)擊紅框所標(biāo)注地方
Edit configuration...
配置tomcat冀墨,若無tomcat
,請點(diǎn)擊鏈接前往官網(wǎng)進(jìn)行下載蔚出。(=?ω?)? ---===≡≡≡給你鏈接tomcat
?2.點(diǎn)擊
+
往下找到Tomcat Server
選擇Local
。?3.點(diǎn)擊Deployment
,彈出圖片所顯示界面踏烙,點(diǎn)擊+
或Fix
選擇artifict
,彈出下圖所顯示內(nèi)容讨惩。
?4.選擇包含(exploded)
內(nèi)容的war包即可浩螺。
?4.輸入tomcatName
鸳君,web-8081
或颊。
?勾選啟動(dòng)完成后是否自動(dòng)打開index.jsp頁面。
?域名鏈接平挑,http://localhost:8081/
唆涝。
?On update action:
選擇Update classes and resources
,當(dāng)發(fā)現(xiàn)更新時(shí)的操作,自動(dòng)更新classes目錄及resource目錄下內(nèi)容亡驰。
?On frame deactivation:
選擇Update classes and resources
,當(dāng)IDEA 切換時(shí)的操作 (比如縮下去隐解、打開網(wǎng)頁等)帕涌,自動(dòng)更新classes目錄及resource目錄下內(nèi)容蚓曼。
?以上兩個(gè)選項(xiàng)可以在當(dāng)jsp頁面修改時(shí)纫版,會(huì)自動(dòng)在網(wǎng)頁更新相關(guān)內(nèi)容癞己。
?HTTP port :8081
Http服務(wù)端口號(hào)。
?JMX port :8081
管理工具和平臺(tái)服務(wù)端口號(hào)糊识。
?若配置成功愉耙,界面顯示如圖。
?若配置失敗悯仙,界面顯示如圖沦零。
11.啟動(dòng)Tomcat
Web服務(wù)器路操。
?點(diǎn)擊紅色方框三角形圖標(biāo)啟動(dòng)服務(wù)。
?啟動(dòng)成功,如上圖所示峰弹。若失敗鞠呈,請檢查相應(yīng)錯(cuò)誤代碼塊,或者tomcat配置情況窘茁。
12.訪問list.jsp頁面庙曙。
?瀏覽器輸入http://localhost:8081/user/list
訪問list.jsp
頁面。顯示出用戶信息列表砂蔽,如圖左驾。