什么是Spring Boot?
Spring Boot是在Spring Framework基礎之上建立的,用于輕松創建基于Spring的獨立、生產級別的應用和服務的開源框架,它通過自動配置、約定大于配置的方式,簡化了Spring應用程式的開發、部署和運行,Spring Boot可以幫助開發者快速搭建基于Spring的應用,從而減少開發時間,
Spring Boot具有以下優勢:
-
自動配置:Spring Boot基于約定大于配置的原則,自動配置應用程式的需要,開發者只需要在必要時手動配置,
-
插件化:Spring Boot支持插件化,它提供了許多starter,開發者只需根據需求引入不同的starter即可,
-
簡化開發、部署和運行:Spring Boot提供了快速開發、集成測驗、部署工具等等,從而簡化整個應用程式的開發、部署和運行程序,
-
適用于微服務架構:Spring Boot為微服務架構而生,它提供了一系列的特性,如服務發現、負載均衡、斷路器等等,使得微服務的開發和部署更加簡單,
總之,Spring Boot是一個快速創建Spring應用程式的框架,它使得開發者能夠更快、更輕松地開發、部署和運行基于Spring的應用程式,
Spring Boot的歷史和發展
Spring Boot是Spring Framework的一個子專案,旨在簡化Spring應用開發的程序,
Spring Boot的歷史在2012年,SpringSource公司(現為Pivotal)發布了第一個Spring Boot版本,之后,Spring Boot的發展一直都非常穩定,并且有大量的社區貢獻者和用戶,隨著時間的推移,Spring Boot不斷增加了新的功能和特性,如今,它已成為使用最廣泛的Java微服務開發框架之一,
Spring Boot的發展
Spring Boot的開發目標是簡化Spring應用開發的程序,這是通過一個開箱即用的配置和假設一系列的約定來實作的,開發人員可以利用自動配置來將應用快速部署并進行測驗,
在Spring Boot 2.0版本中,Spring Boot引入了一些重要的新特性,如回應式編程API、函式式Web框架、Kotlin支持等,此外,Spring Boot 2.1版本還引入了對Java 11的全面支持,
除了Spring Boot自身的發展之外,Spring Boot生態系統的發展也非常迅速,現在,有越來越多的Spring Boot插件、工具和框架可以用于開發和部署Spring Boot應用,
總之,Spring Boot是一個不斷發展的框架,它的變化、發展和提高使得開發更快捷和更方便,同時也能夠滿足更加嚴格的業務要求和更復雜的應用場景,
Spring Boot與Spring有什么關系
Spring Boot是建立在Spring框架之上的,它可以看作是Spring的升級版,Spring Boot采用了約定大于配置的設計思想,通過自動配置和快速啟動,讓Spring應用程式的開發更加簡單、快速和高效,
雖然Spring Boot和Spring Framework是不同的專案,但Spring Boot是由Spring Framework開發團隊開發的,它們之間有很多聯系,Spring Boot可以使用Spring的所有框架和工具,如Spring MVC、Spring Data等,同時它也在不斷地更新和完善這些框架和工具,
Spring Boot讓Spring應用程式更加提高了生產力和可擴展性,它提供了許多特性,例如自動配置和依賴注入等等,在保證應用程式質量和性能的同時,讓開發者更加專注于業務實作,
因此,Spring Boot是Spring Framework的一種框架,它為Spring應用程式開發提供了更加高效的工具和機制,讓開發程序更加容易、快速和高效,
如何用IDEA創建一個Spring Boot應用程式?需要哪些依賴?
使用IntelliJ IDEA創建一個Spring Boot應用程式的步驟如下:
- 打開 IntelliJ IDEA,選擇“Create New Project”選單,
- 在彈出的對話框中,選擇“Spring Initializr”選項,型別選擇Maven,并點擊“Next”按鈕,
- 在下一步中,選擇所需的依賴和Spring Boot版本,例如Web、JPA、MySQL等,
- 點擊“Next”按鈕后,輸入專案的名稱、選擇專案的存盤位置和Java SDK版本,并點擊“Finish”按鈕,IntelliJ IDEA會自動創建一個Spring Boot專案,
在選擇“Spring Initializr”選項時,需要選擇“Maven”或“Gradle”構建工具型別,
這取決于你想使用哪種構建工具來管理你的專案,
如果你選擇使用Maven,那么在下一步中將會看到Maven專案設定選項,同樣的,如果你選擇使用Gradle,那么在下一步中將會看到Gradle專案設定選項,
在選擇構建工具型別后,點擊“Next”按鈕即可繼續創建Spring Boot應用程式,
創建完Spring Boot專案后,需要添加一些必要的依賴,以下是一些常用的依賴:
- spring-boot-starter-web:Spring Boot中提供的Web相關依賴,包含Tomcat和Spring MVC,
- spring-boot-starter-data-jpa:Spring Boot中提供的JPA相關依賴,使得我們可以方便地使用Hibernate等ORM框架,
- spring-boot-starter-security:Spring Boot中提供的安全相關依賴,可以快速集成Spring Security功能,
- spring-boot-starter-test:Spring Boot中提供的測驗相關依賴,包括JUnit、Mockito等,
要添加這些依賴,可以直接在pom.xml檔案中添加,例如,要添加spring-boot-starter-web和spring-boot-starter-data-jpa依賴,可以在pom.xml檔案中加入以下內容:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
完成這些步驟后,可以開始撰寫Spring Boot應用程式了,
如何配置Spring Boot應用程式的屬性
好的,以下是如何配置Spring Boot應用程式的屬性的詳細步驟:
1. 打開您的Spring Boot應用程式專案,
2. 找到application.properties或application.yml檔案,它們通常位于src/main/resources目錄下,如果這些檔案不存在,您可以手動創建它們,
3. 在這些檔案中,您可以設定應用程式的屬性,例如埠號、日志級別等,例如,如果您想將應用程式的埠號設定為8080,可以在application.properties檔案中添加以下行:
server.port=8080
4. 如果您使用的是application.yml檔案,則可以添加以下行:
server:
port: 8080
5. 您還可以在這些檔案中設定其他屬性,例如,如果您想設定日志級別為DEBUG,則可以在application.properties檔案中添加以下行:
logging.level.root=DEBUG
6. 完成后,保存檔案并重新啟動您的應用程式,現在,您的應用程式將使用您剛剛設定的屬性,
Spring Boot應用程式的常見屬性還有哪些
- server.port:設定應用程式的埠號
- logging.level:設定應用程式的日志級別
- spring.datasource.url/spring.datasource.username/spring.datasource.password:設定資料庫連接資訊
- spring.profiles.active:設定激活的Spring組態檔
- spring.jpa.hibernate.ddl-auto:設定Hibernate在啟動時自動創建資料表的模式
- spring.mvc.view.prefix/spring.mvc.view.suffix:設定視圖決議器的前綴和后綴
- spring.mail.*:設定郵件發送相關的配置資訊
- spring.security.*:設定Spring Security的配置資訊
- management.endpoints.web.exposure.include:設定可以訪問的Actuator端點
- spring.cloud.config.*:設定Spring Cloud Config的配置資訊
如何配置Spring Boot應用的日志級別?
在Spring Boot應用中,日志框架默認采用的是Logback,可以通過組態檔或代碼的方式來配置日志級別,下面分別介紹兩種方式: 1. 組態檔方式 在Spring Boot應用中,可以在application.properties或application.yml檔案中配置日志級別,如下: application.properties:logging.level.com.example=INFO
application.yml:
logging:
level:
com.example: INFO
上述配置將com.example包下的日志級別設定為INFO級別,
2. 代碼方式
可以通過在application類中使用@Loggin注解來設定日志級別,如下:
@SpringBootApplication
@Slf4j
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
log.debug("Debug message");
log.info("Info message");
log.warn("Warn message");
log.error("Error message");
};
}
}
在上述代碼中,使用@Slf4j注解來指定日志級別,然后在commandLineRunner方法中使用各種級別的日志輸出,可以在控制臺上看到輸出結果,
除了上述兩種方式,還可以使用其他日志框架替換Logback,例如Log4j、JUL等,只需在pom.xml中添加對應的依賴即可,
如何配置資料源以及資料庫連接資訊?
在Spring Boot中,可以使用多個資料源,包括連接關系型資料庫(Jdbc)、NoSQL資料庫(MongoDB)等等,下面主要介紹如何配置連接關系型資料庫的方式, 1. 資料源配置 在Spring Boot中,可以使用Spring提供的JdbcTemplate或Hibernate/JPA等ORM框架,來訪問關系型資料庫,在配置資料源時,需要引入對應的驅動和配置相關的屬性,如下: application.properties:# DataSource settings: set here your own configurations for the database connection.
spring.datasource.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
在上述配置中,指定了資料庫的連接URL、用戶名、密碼以及驅動類名,
2. 資料庫連接池配置
Spring Boot內部默認采用的是Tomcat連接池,可以根據實際情況,在配置資料源時,設定連接池大小、連接等待時間、最小閑置連接數等引數,如下:
application.properties:
# Connection pool settings.
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.minimum-idle=1
在上述配置中,配置了連接超時時間為20秒鐘、最大連接數為5、最小的空閑連接數為1,
3. 使用多個資料源
在實際應用場景中,經常需要使用多個資料源,可以通過配置多個DataSource bean來實作,具體實作方式見下列示例:
application.properties:
# Primary datasource configurations.
spring.primary.datasource.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.primary.datasource.username=root
spring.primary.datasource.password=root
spring.primary.datasource.driverClassName=com.mysql.cj.jdbc.Driver
# Secondary datasource configurations.
spring.secondary.datasource.url=jdbc:mysql://localhost/secondary?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.secondary.datasource.username=root
spring.secondary.datasource.password=root
spring.secondary.datasource.driverClassName=com.mysql.cj.jdbc.Driver
在上述配置中,定義了兩個資料源,分別為primary和secondary,在代碼中,可以通過@Qualifier注解指定要注入的資料源,如下:
@Autowired
@Qualifier("primaryDataSource")
private DataSource primaryDataSource;
@Autowired
@Qualifier("secondaryDataSource")
private DataSource secondaryDataSource;
其中primaryDataSource和secondaryDataSource是對應的DataSource bean的名稱,
需要注意的是,如果不需要使用默認的資料源,需要明確的指定一個主資料源,可以通過在應用程式的主類中添加@Primary注解來指定主資料源,如下:
@Bean
@Primary
@ConfigurationProperties(prefix="spring.primary.datasource.hikari")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean
@ConfigurationProperties(prefix="spring.secondary.datasource.hikari")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
在上述代碼中,使用@ConfigurationProperties注解讀取組態檔中的屬性,并創建對應的DataSource bean,其中使用@Primary注解指定了primaryDataSource作為主資料源,在實際使用中,可以通過primaryDataSource來呼叫相關的方法,實作操作資料庫,
攔截器和過濾器是Spring Boot應用中常用的組件,它們用于在請求處理前或處理后進行某些操作,如日志記錄、權限校驗、資料格式轉換等,
如何配置Spring Boot應用的攔截器和過濾器?
1. 配置攔截器 在Spring Boot應用中使用攔截器需要實作HandlerInterceptor介面,并在配置類中注冊攔截器,攔截器可以定義在應用級別或具體控制器級別, 示例代碼: 定義攔截器類:@Component
public class CustomInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在請求處理前執行的代碼
return true; // 回傳true表示放行請求,false表示攔截請求
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// 請求處理后但未渲染視圖時執行的代碼
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 視圖渲染后執行的代碼
}
}
注冊攔截器:
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Autowired
private CustomInterceptor customInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注冊應用級別的攔截器
registry.addInterceptor(customInterceptor)
.addPathPatterns("/**"); // 配置攔截路徑
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
2. 配置過濾器
在Spring Boot應用中配置過濾器需要實作Filter介面,并在配置類中注冊過濾器,過濾器可以定義在應用級別或具體servlet級別,
示例代碼:
定義過濾器類:
@Component
public class CustomFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 過濾器初始化時執行的代碼
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 過濾器攔截請求時執行的代碼
chain.doFilter(request, response); // 執行后續的請求處理
// 過濾器處理完請求后執行的代碼
}
@Override
public void destroy() {
// 過濾器銷毀時執行的代碼
}
}
注冊過濾器:
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean<CustomFilter> customFilterRegistration() {
FilterRegistrationBean<CustomFilter> registration = new FilterRegistrationBean<>();
registration.setFilter(new CustomFilter());
registration.addUrlPatterns("/*"); // 配置過濾路徑
registration.setName("CustomFilter");
return registration;
}
}
在黑夜里夢想著光,心中覆寫悲傷,在悲傷里忍受孤獨,空守一絲溫暖, 我的淚水是無底深海,對你的愛已無言,相信無盡的力量,那是真愛永在, 我的信仰是無底深海,澎湃著心中火焰,燃燒無盡的力量,那是忠誠永在,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/554894.html
標籤:其他
上一篇:Go 語言連接資料庫實作增刪改查
下一篇:返回列表
