springboot簡單例子,springboot例子
一.什麼是spring boot
Takes an opinionated view of buildingproduction-ready Spring applications. Spring Boot favors convention overconfiguration and is designed to get you up and running as quickly as possible.
摘自官網
翻譯:採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和運行。
springboot 致力於簡潔,讓開發人員寫更少的配置,程式能夠更快的運行和啟動。它是下一代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
publicclass FirstspringbootApplication {
publicstaticvoidmain(String[] args) {
SpringApplication.run(FirstspringbootApplication.class, args);
}
}
在resources檔案下下又一個application.yml檔案,它是程式的設定檔。預設為空白,寫點配置 ,程式的連接埠為8080,context-path為 /springboot:
server:
port:
8080
context-path: /springboot
寫一個HelloController:
@RestController
//等同於同時加上了@Controller和@ResponseBody
publicclass 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:
8080
context-path: /springboot
girl:
name: B
age:
18
content: content:
${name},age:
${age}
在java檔案中,擷取name屬性,如下:
@Value(
"${name}")
private String name;
也可以通過ConfigurationProperties註解,將屬性注入到bean中,通過Component註解將bean註解到spring容器中:
@ConfigurationProperties(prefix=
"girl")
@Component
publicclassGirlProperties {
private String name;
privateint age;
public String
getName() {
return name;
}
publicvoidsetName(String name) {
this.name = name;
}
publicintgetAge() {
return age;
}
publicvoidsetAge(
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: prod
datasource:
driver
-class-name: com
.mysql
.jdbc
.Driver
url: jdbc:mysql:
//localhost:3306/dbgirl?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
username: root
password:
123
jpa:
hibernate:
ddl
-auto: create
show
-sql:
true
這些都是資料庫常見的一些配置沒什麼可說的,其中ddl_auto: create代表在資料庫建立表,update代表更新,初次開機需要create ,如果你想通過hibernate註解的方式建立資料庫的表的話,之後需要改為 update.
建立一個實體girl,這是基於hibernate的:
@Entity
publicclassGirl {
@Id
@GeneratedValue
private Integer id;
private String cupSize;
private Integer age;
publicGirl() {
}
public Integer
getId() {
return id;
}
publicvoidsetId(Integer id) {
this.id = id;
}
public Integer
getAge() {
return age;
}
publicvoidsetAge(Integer age) {
this.age = age;
}
public String
getCupSize() {
return cupSize;
}
publicvoidsetCupSize(String cupSize) {
this.cupSize = cupSize;
}
}
建立Dao介面, springboot將介面類會自動註解到spring容器中,不需要我嗎做任何配置,只需要繼承JpaRepository即可:
//其中第二個參數為Id的類型
publicinterfaceGirlRepextendsJpaRepository<Girl,Integer>{
}
建立一個GirlController,寫一個擷取所有girl的api和添加girl的api,自己跑一下就可以了:
@RestController
publicclassGirlController {
@Autowired
private 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);
}
}