idea建立springboot專案
使用Spring Boot可以讓我們快速建立一個基於Spring的專案,
而讓這個Spring專案跑起來我們只需要很少的配置就可以了。
Spring Boot主要有如下核心功能:
1.獨立執行的Spring專案
Spring Boot可以以jar包的形式來執行,執行一個Spring Boot專案我們只需要通過java -jar xx.jar類執行。非常方便。
2.內嵌Servlet容器
Spring Boot可以內嵌Tomcat,這樣我們無需以war包的形式部署專案。
3.提供starter簡化Maven配置
使用Spring或者SpringMVC我們需要新增大量的依賴,而這些依賴很多都是固定的,這裡Spring Boot 通過starter能夠幫助我們簡化Maven配置。
4.自動配置Spring
5.準生產的應用監控
6.無程式碼生成和xml配置
@SpringBootApplication註解,這是整個Spring Boot的核心註解,它的目的就是開啟Spring Boot的自動配置。
JDBC(Java DataBase Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式,同時,JDBC也是個商標名。
com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的區別 serverTimezone設定
@Resource 與 @Autowired
@Resource的作用相當於@Autowired,只不過@Autowired按byType自動注入,
而@Resource預設按 byName自動注入罷了。
@Resource有兩個屬性是比較重要的,分是name和type,
Spring將@Resource註解的name屬性解析為bean的名字,而type屬性則解析為bean的型別。
所以如果使用name屬性,則使用byName的自動注入策略,
而使用type屬性時則使用byType自動注入策略。
如果既不指定name也不指定type屬性,這時將通過反射機制使用byName自動注入策略。
@Resource裝配順序
- 如果同時指定了name和type,則從Spring上下文中找到唯一匹配的bean進行裝配,找不到則丟擲異常
- 如果指定了name,則從上下文中查詢名稱(id)匹配的bean進行裝配,找不到則丟擲異常
- 如果指定了type,則從上下文中找到型別匹配的唯一bean進行裝配,找不到或者找到多個,都會丟擲異常
- 如果既沒有指定name,又沒有指定type,則自動按照byName方式進行裝配;
如果沒有匹配,則回退為一個原始型別進行匹配,如果匹配則自動裝配;
AnnotationConfigApplicationContext的例項化過程
Spring @Configuration 和 @Component 區別
一眼看懂,Spring註解@Component、@Repository、@Service、@Controller區別
Bean的Scope
1.Singleton:表示該Bean是單例模式,在Spring容器中共享一個Bean的例項
2.Prototype:每次呼叫都會新建立一個Bean的例項
3.Request:這個是使用在Web中,給每一個http request新建一個Bean例項
4.Session:這個同樣是使用在Web中,表示給每一個http session新建一個Bean例項
參考:
Intellij IDEA 搭建Spring Boot專案(一)
springboot熱部署(二)——springboot熱部署與釋出
yml線上格式轉換工具(properties)
yml,即yaml文字格式檔案的字尾名,yaml可以用來替代properties,可讀性更好一些。
目前spring boot的配置檔案已經同時支援properties和yaml格式。
properties中的格式一般都可以轉換為yaml格式。
在SpringMVC中對RESTful支援,主要通過註解來實現
@Controller:宣告一個處理請求的控制器
@RequestMapping:請求對映地址到對應的方法,該註解又可以分為一下幾種型別:
@GetMapping
@PostMpping
@PutMapping
@DeleteMapping
@PatchMapping
@ResponseBody:響應內容轉換為JSON格式
@RequestBody:請求內容轉換為JSON格式
@RestContrller:等同@Controller+@ResponseBody
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
String name() default "";
//請求的實際地址
@AliasFor("path")
String[] value() default {};
//value與path,二者效果等同
@AliasFor("value")
String[] path() default {};
//請求方法: GET、POST、PUT、DELETE等;
RequestMethod[] method() default {};
//request中必須包含某些引數值時,才讓該方法處理。
String[] params() default {};
//request中必須包含某些指定的header值,才能讓該方法處理請求。
String[] headers() default {};
//處理請求的提交內容型別(Content-Type),例如application/json, text/html;
String[] consumes() default {};
//返回的內容型別,僅當request請求頭中的(Accept)型別中包含該指定型別才返回;
String[] produces() default {};
}
超詳細 Spring @RequestMapping 註解使用技巧
@RequestParam,@PathParam,@PathVariable等註解區別
@RequestParam:拼接
@PathVariable: 替換
SpringMVC-@RequestMapping的引數和用法
建立專案過程:
GroupID
【專案組織】唯一的識別符號,決定專案包名,一般格式:域名.公司名.專案名
常見域名:cn(china),org(非營利組織),com(商業組織)
例如:
com.baidu.demo1
ArtifactID
【專案】的唯一的識別符號,決定專案名,一般格式:專案名-功能
例如:
demo1-test
demo1-dev
demo1-release
GroupID 、ArtifactID不決定本地專案名。
project name 可隨意設定, 此處決定本地專案名。
檢視pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!--Spring boot編譯外掛-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
main函式
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.*;
@RestController
@SpringBootApplication //Spring Boot核心註解,用於開啟自動配置
public class DemoApplication {
/*
* 執行main方法之後,在瀏覽器中訪問http://localhost:8080
* */
@RequestMapping("/")
String index() {
return "Hello Spring Boot";
}
/*
*url傳參,訪問的路徑類似這樣:localhost:8080/getParamDemo1/1
* 方法體中的引數要在前面加註釋,@PathVariable,代表url中的引數
*/
@RequestMapping(path = {"/getParamDemo1/{id}"})
public String getParamDemo1(@PathVariable("id") int userId) {
System.out.println("get param " + userId);
return "success get param";
}
/**
* 當然,你也可以通過這種傳參方式:localhost:8080/getParamDemo2?param1=1 或者直接表單提交引數
* 當然,同時方法中引數宣告的註釋也要變成@RequestParam,代表請求引數,required屬性說明了引數是否是必須的
*/
@RequestMapping(path = {"/getParamDemo2"})
public String getParamDemo2(@RequestParam(value = "param1", required = false) int param) {
System.out.println("get param " + param);
return "success get param";
}
/**
* 通過設定RequestMapping的method屬性便可以設定該方法可處理的對應請求了,例如下面的getRequestDemo方法只會處理get請求
*/
@RequestMapping(path = {"/getRequestDemo"}, method = RequestMethod.GET)
public String getRequestDemo(@RequestParam(value = "param1", required = false) Integer param) {
System.out.println("get request test ,get param " + param);
return "success get param";
}
/**
* 下面的deleteRequestDemo方法只會處理delete請求
*/
@RequestMapping(path = {"/deleteRequestDemo"}, method = RequestMethod.DELETE)
public String deleteRequestDemo(@RequestParam(value = "param1", required = false) Integer param) {
System.out.println("delete request test ,get param " + param);
return "success get param";
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
新建專案發現沒有找到庫,可以使用maven 倉庫的install進行下載庫即可。
再點選重新整理,在main方法所在類中右鍵啟動即可。
如圖:即為正常啟動的log。
問題:java.net.BindException: Address already in use: bind
解決:
//查詢使用埠的pid
netstat -ano|findstr 8080
//查詢使用埠的程式
tasklist|findstr 13480
//kill掉佔用的程式
taskkill -pid 13480 -f
然後重啟
相關文章
- idea 建立springboot專案IdeaSpring Boot
- 使用IDEA建立springboot專案IdeaSpring Boot
- IDEA 快速建立 SpringBoot 專案IdeaSpring Boot
- 1.idea建立springboot專案IdeaSpring Boot
- IDEA建立SpringBoot專案(詳細教程)IdeaSpring Boot
- _005_SpringBoot_使用IDEA建立SpringBoot專案Spring BootIdea
- IDEA建立SpringBoot的多模組專案教程IdeaSpring Boot
- IDEA社群版(IDEA Community Edition)建立Springboot父子專案IdeaUnitySpring Boot
- 基於IDEA的SpringBoot專案建立(三)——thymeleafIdeaSpring Boot
- _003_SpringBoot_使用IDEA快速建立一個SpringBoot專案Spring BootIdea
- idea建立web專案IdeaWeb
- idea建立javaweb專案IdeaJavaWeb
- Idea 建立 父專案和子專案Idea
- Idea intellij jdk 1.7通過maven建立Springboot專案IdeaIntelliJJDKMavenSpring Boot
- IDEA建立Flink專案Idea
- [SpringBoot學習]-IDEA建立Gradle多Module結構的SpringBoot專案Spring BootIdeaGradle
- IDEA建立動態Web專案IdeaWeb
- 使用IDEA建立gradle專案IdeaGradle
- IntelliJ IDEA建立 SBT專案IntelliJIdea
- Intellij idea建立javaWeb專案IntelliJIdeaJavaWeb
- idea社群版建立web專案IdeaWeb
- spring boot 建立web專案(IDEA)Spring BootWebIdea
- idea建立spring boot專案慢()IdeaSpring Boot
- 使用idea建立springboot專案並打成war包釋出到weblogic上IdeaSpring BootWeb
- 線上快速建立SpringBoot專案Spring Boot
- SpringBoot入門 - 建立專案Spring Boot
- intellij idea 建立動態web專案IntelliJIdeaWeb
- Intellij IDEA建立spring MVC專案IntelliJIdeaSpringMVC
- IDEA建立SpringMVC+Gradle專案IdeaSpringMVCGradle
- IDEA--Maven建立WEB分模組專案IdeaMavenWeb
- IntelliJ IDEA 建立Gradle/Java 專案IntelliJIdeaGradleJava
- SpringBoot專案建立流程--SpringMVCSpring BootSpringMVC
- Springboot建立maven多模組專案Spring BootMaven
- IntelliJ IDEA中建立Web聚合專案(Maven多模組專案)IntelliJIdeaWebMaven
- idea執行springboot開源專案GunsIdeaSpring Boot
- IDEA開發SpringBoot專案問題集IdeaSpring Boot
- SpringBoot專案建立與第一個SSM專案示例Spring BootSSM
- IDEA建立Maven專案中踩過的坑IdeaMaven