2 小時學會 springboot ( 附實例講解 )

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

一.什么是spring boot
Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.

摘自官網

翻譯:采納了建立生產就緒Spring應用程序的觀點。 Spring Boot優先于配置的慣例,旨在讓您盡快啟動和運行。

spring boot 致力于簡潔,讓開發者寫更少的配置,程序能夠更快的運行和啟動。它是下一代javaweb框架,并且它是spring cloud(微服務)的基礎。

?

二、搭建第一個sping boot 程序
可以在start.spring.io上建項目,也可以用idea構建。本案列采用idea.

具體步驟:

new prpject -> spring initializr ->{name :firstspringboot , type: mavenproject,packaging:jar ,..} ?->{spring version :1.5.2 ?web: web } -> ...


應用創建成功后,會生成相應的目錄和文件。

其中有一個Application類,它是程序的入口:

@SpringBootApplication
public class FirstspringbootApplication {public static void main(String[] args) {SpringApplication.run(FirstspringbootApplication.class, args);}
}

在resources文件下下又一個application.yml文件,它是程序的配置文件。默認為空,寫點配置 ,程序的端口為8080,context-path為 /springboot:

server:port: 8080context-path: /springboot


寫一個HelloController:

@RestController ? ? //等同于同時加上了@Controller和@ResponseBody
public class HelloController {//訪問/hello或者/hi任何一個地址,都會返回一樣的結果@RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)public String say(){return "hi you!!!";}
}

運行 Application的main(),呈現會啟動,由于springboot自動內置了servlet容器,所以不需要類似傳統的方式,先部署到容器再啟動容器。只需要運行main()即可,這時打開瀏覽器輸入網址:localhost:8080/springboot/hi ,就可以在瀏覽器上看到: hi you!!!

三.屬性配置
在appliction.yml文件添加屬性:

server:port: 8080context-path: /springbootgirl:name: Bage: 18content: content:${name},age:${age}

??在java文件中,獲取name屬性,如下:

@Value("${name}")private String name;

也可以通過ConfigurationProperties注解,將屬性注入到bean中,通過Component注解將bean注解到spring容器中:

@ConfigurationProperties(prefix="girl")
@Component
public class GirlProperties {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

另外可以通過配置文件制定不同環境的配置文,具體見源碼:

spring:profiles:active: prod

四.通過jpa方式操作數據庫
導入jar ,在pom.xml中添加依賴:

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

在appilication.yml中添加數據庫配置:

spring:profiles:active: proddatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/dbgirl?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8username: rootpassword: 123jpa:hibernate:ddl-auto: createshow-sql: true

這些都是數據庫常見的一些配置沒什么可說的,其中ddl_auto: create 代表在數據庫創建表,update 代表更新,首次啟動需要create ,如果你想通過hibernate 注解的方式創建數據庫的表的話,之后需要改為 update.

創建一個實體girl,這是基于hibernate的:

@Entity
public class Girl {@Id@GeneratedValueprivate Integer id;private String cupSize;private Integer age;public Girl() {}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getCupSize() {return cupSize;}public void setCupSize(String cupSize) {this.cupSize = cupSize;}
}

創建Dao接口, springboot 將接口類會自動注解到spring容器中,不需要我嗎做任何配置,只需要繼承JpaRepository 即可:

//其中第二個參數為Id的類型

public interface GirlRep extends JpaRepository<Girl,Integer>{}

創建一個GirlController,寫一個獲取所有girl的api和添加girl的api ,自己跑一下就可以了:

@RestController
public class GirlController {@Autowiredprivate GirlRep girlRep;/*** 查詢所有女生列表* @return*/@RequestMapping(value = "/girls",method = RequestMethod.GET)public List<Girl> getGirlList(){return girlRep.findAll();}/*** 添加一個女生* @param cupSize* @param age* @return*/@RequestMapping(value = "/girls",method = RequestMethod.POST)public Girl addGirl(@RequestParam("cupSize") String cupSize,@RequestParam("age") Integer age){Girl girl = new Girl();girl.setAge(age);girl.setCupSize(cupSize);return girlRep.save(girl);}}?

如果需要事務的話,在service層加@Transaction注解即可。已經凌晨了,我要睡了.

源碼;http://download.csdn.net/detail/forezp/9778235

參考資料
說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com @廖師兄
?

轉自方志朋的博客:
https://www.fangzhipeng.com/springboot/2017/05/25/sb25-2hour.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447698.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447698.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447698.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

管理拾穗:四眼原則

日前聽到一位現在服務于一家德國公司的朋友提及他們公司里的主管有一個四眼原則(Four eyes principle)&#xff0c;意思是如果有一份對外的重要文件要發出前&#xff0c;要經過兩個人(四個眼睛)看過&#xff0c;確定內容無誤之后&#xff0c;再發出。我也曾經在一家國際知名的德…

CEF編譯 執行gn args out\Release_GN_x86異常

gn args out\Debug_GN_x86 用來配置編譯參數&#xff0c;執行gn args out\Release_GN_x86時異常&#xff1a; Toolchain is out of date. Run "gclient runhooks" to update the toolchain, or set DEPOT_TOOLS_WIN_TOOLCHAIN0 to use the locally installed toolcha…

成功者刻骨銘心的一句話

您知道嗎&#xff1f;在這個世界上有許多名人和飛黃騰達的企業家。他們的成功除了靠自己的努力外&#xff0c;還靠來自他人的啟發&#xff0c;改變了他們的觀點&#xff0c;因而攀上了人生的巔峰。就像美國著名顧問公司蓋洛普&#xff08;Gallup&#xff09;的CEO吉姆?克利夫頓…

js中的鼠標右鍵點擊事件

https://www.cnblogs.com/sea-stream/p/9638870.html window.onload function(){//去掉默認的contextmenu事件&#xff0c;否則會和右鍵事件同時出現。document.oncontextmenu function(e){e.preventDefault();};document.getElementById("test").onmousedown fun…

拜托!面試請不要再問我 Spring Cloud 底層原理 ...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 >出處&#xff1a; >https://www.fangzhipeng.com > 本文出自[方志朋的博客](http://blog.csdn.net/forezp) 本文為轉載文章&…

Django ORM 知識點總結

Query是如何工作的 Django QuerySet是懶執行的&#xff0c;只有訪問到對應數據的時候&#xff0c;才會去訪問數據庫。另外如果你再次讀取查詢到的數據&#xff0c;將不會觸發數據庫的訪問&#xff0c;而是直接從緩存獲取。 比如 # 這里不會訪問數據庫&#xff0c;origins只是一…

22天養成好習慣,一年后脫胎換骨!

第一個習慣&#xff1a; 每天對鏡子的自己微笑。 親愛的&#xff0c;如果你都不喜歡自己的話&#xff0c;怎么可能指望別人喜歡你&#xff1f; 第二個習慣&#xff1a; 每天用涼水洗臉。 涼水洗臉&#xff0c;皮膚健康&#xff1b;熱水洗腳&#xff0c;強似吃藥。 第三個習…

springCloud - 第1篇 - 服務的注冊 Eureka

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 PS&#xff1a;這個系列不定時更新&#xff0c;只是個人的學習分享&#xff0c; 內容全程參考書目&#xff1a; 《Spring Cloud 與 Do…

js中的Map對象

var map new Map();//map對象中添加鍵值對map.set("name","tom");map.set("age",35);map.set("sex",0);//獲取map對象中的值map.get("name")//tom//遍歷map 函數中第一個參數是value&#xff0c;第二個參數是keymap.forEa…

十六個字 一輩子學不完

1、道歉&#xff1a;并不總意味著你是錯的&#xff0c;它只是意味著你更珍惜你們之間的關系。 2、相愛&#xff1a;不是尋找一個完美的人&#xff0c;而是學會用完美的眼光&#xff0c;去欣賞一個不完美的人。 3、專一&#xff1a;不是一輩子只喜歡一個人&#xff0c;…

解決:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘ip‘ at row 1

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 報錯&#xff1a; SQL []; Data truncation: Data too long for column ip at row 1; nested exception is com.mysql.jdbc.MysqlDa…

Xampp配置本地域名及常見錯誤解決

Xampp配置本地域名及常見錯誤解決 本地域名配置1、計算機-->C盤-->Windows-->System32-->drivers-->etc-->hosts127.0.0.1 localhost//設置你要配置的本地域名2、計算機-->XAMPP-->apache-->conf-->extra-->httpd-vhosts.conf<Virtu…

單元測試寫法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 好像很早前寫過的&#xff1a; package com.xxx.dubbo;import com.xxx.app.xx.xx.dao.MarketingRuleMapper; import com.xxx.app.xx.xx…

刷新網頁跳轉錨點

html中&#xff1a; <a name"miao" > <b>{{ $v->department_name }}</b></a> js跳轉錨點&#xff1a; window.οnlοadfunction(){location.hashmiao;} 轉載于:https://www.cnblogs.com/best-coder/p/11550177.html

java - 通用 CRUD(增、刪、改、查)工具類,代碼高效復用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 基本 CRUD 方法實現&#xff1a; package com.xxx.xxx.ls.xxx.utils;import com.alibaba.fastjson.JSON; import com.google.common…

CSS文本溢出顯示省略號

項目中常常有這種需要我們對溢出文本進行"..."顯示的操作&#xff0c;單行多行的情況都有&#xff08;具體幾行得看設計師心情了&#xff09;&#xff0c;這篇隨筆是我個人對這種情況解決辦法的歸納&#xff0c;歡迎各路英雄指教。 單行 語法 overflow:hidden;text-o…

@JsonFormat Date類型時間 格式化 注解 使用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 JsonFormat注解是一個時間格式化注解&#xff0c;比如我們存儲在mysql中的數據是date類型的&#xff0c;當我們讀取出來封裝在實體類中的…

好用的在線工具

1.在線工具 http://tool.oschina.net/ 網站里面包含很多強大的工具&#xff0c;代碼對比&#xff0c;正則表達式在線驗證&#xff0c;各種語言的語法對照表等。 2.so JSON在線工具 https://www.sojson.com/ 這個網站可能更加偏向前端一些吧&#xff0c;里面有一些加密解密&…

解決 Idea 卡在 Resolving Maven dependencies ...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Idea卡在Resolving Maven dependencies的解決方案 在Reimpot All Maven Porjects時, 如果項目過大, maven依賴過多, 會直接卡在Resolvin…

VS Code (visual studio code) VSC 編輯器(微軟出品,js開發的編輯器)

一.選擇合適的編輯器&#xff0c;提高編程效率 代碼編輯器的選擇&#xff0c;可以說是開發者社區中一個經久不衰的話題&#xff0c;現今編輯器的數量數不勝數&#xff0c;vim&#xff0c;sublime Text,Emacs,Atom等等&#xff0c;那么對于一個開發者而言&#xff0c;挑選一個合…