前言:
本文淺淺講解一下,使用多種軟件共同開發(fā)一個java工程。
這是我在windows系統(tǒng)上跑成功的一次設(shè)計:
邏輯圖如下:
?一:所需軟件和版本。
idea,maven,jdk,git,jenkins,nginx,fiddler,chrome,mysql,navicat,tomcat,apifox
idea:Docs
maven:http:// maven.apache. org
jdk:建議使用jdk.8,目前較為主流的jdk版本。百度安全驗證
git:Git - Downloads
jenkins:Jenkins詳細(xì)教程 - 簡書
mysql和navicat:https://blog.csdn.net/weixin_44006731/article/details/128613910?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168024526716800215077560%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168024526716800215077560&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-128613910-null-null.142^v80^insert_down38,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=navicat%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187
tomcat:【Tomcat】Tomcat 介紹及使用教程_吞吞吐吐大魔王的博客-CSDN博客
二:軟件配置
Spring作為最流行的java開發(fā)框架,常用來實現(xiàn)微服務(wù),其主要特點(diǎn)是簡化了初始化搭建與開發(fā)過程,提供了包括自動化配置、Starter(簡化Maven配置)、內(nèi)嵌Servlet容器、應(yīng)用監(jiān)控等能力。
環(huán)境準(zhǔn)備
步驟 |
名稱 |
詳細(xì) |
1 |
Windows操作系統(tǒng) |
Microsoft Windows [版本 10.0.17134.1184] |
2 |
JDK |
java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode) |
3 |
IntelliJ IDEA |
IntelliJ IDEA Community Edition 2019.3.1 x64 |
4 |
Apache Maven |
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00) Maven home: D:\SETUP\Java\apache-maven-3.6.2-bin\apache-maven-3.6.2\bin\.. Java version: 1.8.0_231, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_231\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows" |
5 |
配置IntelliJ IDEA |
![]() |
- 用Maven命令創(chuàng)建項目
【Maven】【Name】【Group】【Version】【ModuleName】創(chuàng)建即可。
然后手工添加Spring Boot的依賴,pom.xml
<parent>
??? <!-- 提供了如下能力:
??? 1、jdk版本 1.8
??? 2、編碼格式 utf-8
??? 3、提供依賴管理用來管理項目的版本
??? 4、資源過濾與插件配置
??
??? 如果不使用此,需要自己添加替代的配置
????? -->
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-parent</artifactId>
?? <version>2.3.3.RELEASE</version>
</parent>
<dependency>
?? <groupId>org.springframework.boot</groupId>
?? <artifactId>spring-boot-starter-web</artifactId>
</dependency>
編寫啟動類
@SpringBootApplication
public class DemoApplication {
?? public static void main(String[] args) {
????? SpringApplication.run(DemoApplication.class, args);
? }
}
- 用Spring Asistant構(gòu)建項目
【File】-【New】-【 Project】
選擇【Spring Asistant】
確定項目名稱【helloworld】
然后,選擇【W(wǎng)eb】-【Spring Web】
最后確定項目名【helloworld】
然后,項目生成,可下載依賴包(Reimport All Maven Projects)
這里我更新時提醒錯誤【Cannot resolve net.bytebuddy:byte-buddy:1.10.6】,通過調(diào)整版本2.2.4到2.2.2解決之
最后,找到入口類,執(zhí)行main方法
- 工程目錄介紹
以上述生成的helloworld為例,介紹相關(guān)的文件目錄如下:
IDEAPROJECTS\HELLOWORLD
├─.idea
│? └─libraries
├─.mvn
│? └─wrapper
├─src
│? ├─main
│? │? ├─java # 放置所有的java文件
│? │? │? └─com
│? │? │????? └─example
│? │? │????????? └─helloWorld
│? │? └─resources??? # 放置所有的資源文件,包括靜態(tài)資源、配置、頁面文件等。包括application.properties或者是 application.yml
│? │????? ├─static???
│? │????? └─templates # 放置末班文件,如Thymeleaf模板文件
│? └─test
│????? └─java # 放置單元測試類代碼java文件
│????????? └─com
│????????????? └─example
│????????????????? └─helloWorld
└─target #放置編譯后的.calss文件,配置文件等
??? ├─classes
??? │? └─com
??? │????? └─example
??? │????????? └─helloWorld
??? ├─generated-sources
??? │? └─annotations
??? ├─generated-test-sources
??? │? └─test-annotations
??? └─test-classes
??????? └─com
??????????? └─example
??????????????? └─helloWorld
1 配置文件
Spring Boot自動在/src/main/resources目錄下尋找application.properties或application.yml文件,找到后則應(yīng)用此文件的配置,兩者可并存。以properties文件的配置優(yōu)先。
application.properties 格式如下
server.port = 8080
application.yml 格式如下
server:
port: 8080
2 入口類
入口類的類名是按照項目名生成的,【項目名+Application】
其使用@SpringBootApplication組合注解。
入口類放在包的最外層,便于掃描所有的子包中的類。
3 測試類
測試類的類名是按照項目名生成的,【項目名+ApplicationTests】
@RunWith(SpringRunner.class) : 參數(shù)化運(yùn)行器,配合@Parameters使用Junit的參數(shù)化功能。
@SpringBootTest : 測試SpringApplication
@Test: Junit單元測試的注解,表示一個測試方法。
4 POM文件
待深入
- Maven在IDEA的輔助工具
IDEA工程右側(cè)對maven的結(jié)構(gòu)可呈現(xiàn)樹狀視圖,如下:
修改完pom.xml后,右側(cè)會呈現(xiàn)相關(guān)依賴列表,并可通過點(diǎn)擊刷新實現(xiàn)下載,點(diǎn)擊Lifecycle下的標(biāo)簽,實現(xiàn)maven命令的觸發(fā)。
- 編寫最簡單的Demo
在src中新建controler包,在包中創(chuàng)建SimleDemo類,代碼如下:
package com.example.helloWorld.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SimpleDemo {
??? @GetMapping("/helloworld")
??? public String hello() {
??????? return "Hello World!";
??? }
}
- 執(zhí)行測試
啟動Application入口類,訪問地址 http://127.0.0.1:8080/helloworld,可得到如下頁面:
?
5 集成MySQL數(shù)據(jù)庫
SpringBoot集成MySQL通過引入依賴,配置數(shù)據(jù)庫參數(shù),建立實體類即可實現(xiàn)。
- 引入依賴
修改POM,刷新即可。
在pom文件中添加對MySQL的依賴,具體代碼如下:
<dependency>
????? <groupId>mysql</groupId>
????? <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
????? <groupId>org.springframework.boot</groupId>
????? <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
- 添加數(shù)據(jù)庫參數(shù)配置
在application.properties文件添加類似如下配置信息
spring.datasource.url=jdbc:mysql://db.domin.com:3306/db_name
spring.datasource.username=name
spring.datasource.password=passwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- 設(shè)計簡單實體類
表結(jié)構(gòu)如下,準(zhǔn)備好數(shù)據(jù)之后,就可以參考設(shè)計自己的實體類。
設(shè)計的實體類如下:
package com.example.helloWorld;
public class TCategory {
??? private Integer f_id;
??? private String f_name;
??? private String f_crt_tm;
??? private String f_mod_tm;
??? private String f_desc;
/**
*
*在編輯完上面的代碼后,按p即可出現(xiàn)快捷輸入
*選擇快捷代碼右邊有綠色的打開的鎖的圖標(biāo)的代碼即可出現(xiàn)下列代碼
*
*/
??? public Integer getF_id() {
??????? return f_id;
??? }
??? public String getF_crt_tm() {
??????? return f_crt_tm;
??? }
??? public String getF_desc() {
??????? return f_desc;
??? }
??? public String getF_mod_tm() {
??????? return f_mod_tm;
??? }
??? public String getF_name() {
??????? return f_name;
??? }
??? public void setF_crt_tm(String f_crt_tm) {
??????? this.f_crt_tm = f_crt_tm;
??? }
??? public void setF_desc(String f_desc) {
??????? this.f_desc = f_desc;
??? }
??? public void setF_id(Integer f_id) {
??????? this.f_id = f_id;
??? }
??? public void setF_mod_tm(String f_mod_tm) {
??????? this.f_mod_tm = f_mod_tm;
??? }
??? public void setF_name(String f_name) {
??????? this.f_name = f_name;
??? }
}
- 編寫測試方法
@Resource
private JdbcTemplate jdbcTemplate;
@Test
public void mySqlTest(){
???????? String sql = "select f_id,f_name ,f_crt_tm,f_mod_tm,f_desc from t_category";
???????? List<TCategory> cateList = (List<TCategory>) jdbcTemplate.query(
??????????????????????????? sql,new RowMapper<TCategory>(){
???????????????????????????????????? @Override
???????????????????????????????????? public TCategory mapRow(ResultSet rs,int rowNum) throws SQLException {
?????????????????????????????????????????????? TCategory cate = new TCategory();
?????????????????????????????????????????????? cate.setF_id(rs.getInt("f_id"));
?????????????????????????????????????????????? cate.setF_crt_tm(rs.getString("f_crt_tm"));
?????????????????????????????????????????????? cate.setF_mod_tm(rs.getString("f_mod_tm"));
?????????????????????????????????????????????? cate.setF_name(rs.getString("f_name"));
?????????????????????????????????????????????? cate.setF_desc(rs.getString("f_desc"));
?????????????????????????????????????????????? return cate;
???????????????????????????????????? }
??????????????????????????? }
???????? );
???????? System.out.println("Query ok:");
???????? for(TCategory itm:cateList){
?????????????????? System.out.println(itm.getF_id()+"\t"+
???????????????????????????????????? itm.getF_name()+"\t"+
???????????????????????????????????? itm.getF_crt_tm()+"\t"+
???????????????????????????????????? itm.getF_mod_tm()+"\t"+
???????????????????????????????????? itm.getF_desc()
?????????????????? );
???????? }
}
測試方法還可以使用tomcat
?點(diǎn)擊?,選擇tomcat服務(wù)器
?根據(jù)自己的tomcat版本選擇相應(yīng)的的服務(wù)程序,名稱。URL和http端口可以自行定義
點(diǎn)擊部署,加入相應(yīng)的war包,保存后便可以正常運(yùn)行。?
JdbcTemplate是一個通過JDBC連接數(shù)據(jù)庫的輔助類。可通過如下代碼引入:
<dependency>
????? <groupId>org.springframework.boot</groupId>
????? <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
@Resource是一個注解,可讓Spring Boot協(xié)助實例化一個JdbcTemplate實例對象,省去初始化的工作。
6 執(zhí)行測試
IDEA中選擇測試方法,運(yùn)行,可看到輸出相關(guān)數(shù)據(jù)庫的值。(小技巧,運(yùn)行打包等操作之前可以clean一下然后再重新加載一下很多時候因為數(shù)據(jù)緩存導(dǎo)致運(yùn)行失敗的,那種情況查都查不出來)
三.將可以運(yùn)行的文件上傳到git倉庫中。
首先,創(chuàng)建一個屬于自己的git倉庫,然后將項目提交并推送到git倉庫中
Windows系統(tǒng)下搭建Git本地代碼庫「建議收藏」 - 騰訊云開發(fā)者社區(qū)-騰訊云
?這個是自己的git倉庫地址,然后進(jìn)行以下操作git-推送-選擇需要變更的文件-提交并推送。
這樣你可以在自己的git倉庫中看到可以運(yùn)行的軟件
其實到這里已經(jīng)成功的建立了一個javaweb的后端程序并上傳到自己的git倉庫,這樣也不怕改錯了導(dǎo)致需要重新編輯,可以隨時從git上下載代碼用idea打開。但是我們往往會使用到最后一個工具jenkins來將自己寫的代碼上傳到企業(yè)的測試環(huán)境中,以及使用apifox進(jìn)行測試。
四.上傳及測試。
上傳
上傳工具我使用的是jenkins
?這里需要添加密匙,需要輸入自己的git賬號密碼
?
?如果發(fā)現(xiàn)自己有的配置選項沒有,就需要去dashboard下面的系統(tǒng)管理中的插件管理里面增加對應(yīng)的插件。
配置完成之后可以運(yùn)行
?然后查看構(gòu)建歷史
?然后點(diǎn)擊最新的構(gòu)建歷史并查看控制臺輸出,看看是否運(yùn)行成功或者問題出在哪里(一般構(gòu)建需要較長的時間,如果幾秒鐘就構(gòu)建完成并顯示綠色的勾基本是沒有上傳文件,需要查看自己的配置)
?測試
?每個團(tuán)隊用到的測試軟件都有差異,我這里使用的apifox,可以使用軟件,也可以使用網(wǎng)頁版,創(chuàng)建賬號后可以新建團(tuán)隊,在新建團(tuán)隊里面可以邀請成員一起參與編輯和測試(前提是在同一個測試環(huán)境里面)
?這里我新建了一個演示項目
?打開之后點(diǎn)擊新建接口
?
這里我們一般只用到GET(查找)和POST(修改)并在接口路徑上寫入URL?
我這里寫入這個?
?然后保存,運(yùn)行,發(fā)送
?到這一步就已經(jīng)查詢成功了。
?要注意格式,{
"name":"text",
"id":"1"
}
現(xiàn)在我們建立一個修改,在示例值里面寫入想給其他成員看的查詢/修改模板。
這里我沒有增加ID所以報錯(ID一般是在navicat中設(shè)置的主鍵)
保存運(yùn)行之后,在動態(tài)值里面寫入對應(yīng)的數(shù)據(jù),點(diǎn)擊發(fā)送即可修改,如果加入對應(yīng)的id主鍵就是修改,如果加入不存在的ID就是新增。
這里因為我的8888端口被fiddler占用了,關(guān)閉fiddler后
?幫助中心 | Apifox 幫助文檔
?我這里修改name為name1,刷新一下chrome
修改成功 !
這是我最后一段數(shù)據(jù)庫的數(shù)據(jù),我將id設(shè)置為100后,刷新一下chrome?
?新增成功!
五.結(jié)束語
非常感謝能看到這里,本文主要提供了新人工作時可能遇到的一小部分情況。
如果有錯誤還望指出,謝謝各位。文章來源:http://www.zghlxwxcb.cn/news/detail-778185.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-778185.html
到了這里,關(guān)于簡單的數(shù)據(jù)庫連接與提供前端接口的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!