中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot 配置注解是什么意思

發布時間:2020-10-27 11:14:05 來源:億速云 閱讀:278 作者:小新 欄目:編程語言

springboot 配置注解是什么意思?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

一、概述

Spring Boot設計目的是用來簡化新Spring應用的初始搭建以及開發過程。Spring Boot并不是對Spring功能上的增強,而是提供了一種快速使用Spring的方式。

二、特性

①創建獨立的Spring應用程序
②嵌入的Tomcat,無需部署WAR文件
③簡化Maven配置
④自動配置Spring
⑤提供生產就緒型功能,如指標,健康檢查和外部配置
⑥開箱即用,沒有代碼生成,也無需XML配置。

三、注解說明

@SpringBootApplication        Spring Boot項目的核心注解,主要目的是開啟自動配置;
@Configuration 作用于類上,相當于一個xml配置文件,配置Spring
@Bean 作用于方法上,相當于xml配置中的<bean>
@ComponentScan 默認掃描@SpringBootApplication所在類的同級目錄以及它的子目錄。
@PropertySource("classpath:env.properties") 讀取外部的配置文件,通過@Value注解獲取值
@Transactional 申明事務

四、SpringBoot目錄文件結構講解

src/main/java:存放代碼
src/main/resources
static:    存放靜態文件,比如 css、js、image, (訪問方式 http://localhost:8080/js/main.js)
templates: 存放靜態頁面jsp,html,tpl
config:   存放配置文件,application.properties

五、SpringBoot默認加載文件的路徑

/META-INF/resources/
/resources/
/static/
/public/

SpringBoot默認配置

spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

六、Spring Boot熱部署

①添加依賴            

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>

②Compiler 勾選中左側的Build Project automatically

③idea設置Auto-Compile,然后 Shift+Ctrl+Alt+/,選擇Registry
勾選compiler.automake.allow.when.app.running

④不被熱部署的文件
1、/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates
       2、指定文件不進行熱部署 spring.devtools.restart.exclude=static/**,public/**
3、手工觸發重啟 spring.devtools.restart.trigger-file=trigger.txt
    改代碼不重啟,通過一個文本去控制

七、自定義啟動Banner

①訪問http://patorjk.com/software/taag/#p=display&h=3&v=3&f=4Max&t=itcast%20Spring%20Boot
②拷貝生成的字符到一個文本文件中,并且將該文件命名為banner.txt
③將banner.txt拷貝到項目的resources目錄中

八、全局配置文件(application.properties或application.yml)

server.port=8088
server.servlet-path=*.html
server.tomcat.uri-encoding=UTF-8 
logging.level.org.springframework=DEBUG

更多點擊參見官網地址

九、Starter pom

spring-boot-starter 核心Spring Boot starter,包括自動配置支持,日志和YAML
spring-boot-starter-amqp        對高級消息隊列協議的支持,通過spring-rabbit實現
spring-boot-starter-aop 對面向切面編程的支持,包括spring-aop和AspectJ
spring-boot-starter-data-elasticsearch 對Elasticsearch搜索擎的支持,包括spring-data-elasticsearch
spring-boot-starter-data-jpa        對Java持久化API的支持,包括spring-data-jpa,spring-orm和Hibernate
spring-boot-starter-jdbc        對JDBC數據庫的支持
spring-boot-starter-redis        對REDIS鍵值數據存儲的支持,包括spring-redis
spring-boot-starter-data-redis
spring-boot-starter-security        對spring-security的支持
spring-boot-starter-test        對常用測試依賴的支持,包括JUnit, Hamcrest和Mockito,spring-test
spring-boot-starter-velocity        對Velocity模板引擎的支持
spring-boot-starter-activemq
spring-boot-starter-freemarker
spring-boot-starter-thymeleaf
spring-boot-starter-web 對全棧web開發的支持,包括Tomcat和spring-webmvc
spring-boot-starter-webflux
(更多配置見百度)

十、常用json框架

(1)JavaBean序列化為Json,性能:
Jackson > FastJson > Gson > Json-lib
(2)jackson處理相關注解
指定字段不返回:@JsonIgnore
指定日期格式:   @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
空字段不返回:   @JsonInclude(Include.NON_NUll)
指定別名: @JsonProperty

十一、SpringBoot使用任務調度

(1)使用步驟:

①啟動類里面 @EnableScheduling開啟定時任務,自動掃描
②定時任務業務類 加注解 @Component被容器掃描
③定時執行的方法加上注解 @Scheduled(fixedRate=2000) 定期執行一次

(2)常用定時任務表達式配置和在線生成器

cron 定時任務表達式 @Scheduled(cron="*/1 * * * * *") 表示每秒

crontab 工具  https://tool.lu/crontab/

ixedRate: 定時多久執行一次(上一次開始執行時間點后xx秒再次執行;)
fixedDelay: 上一次執行結束時間點后xx秒再次執行
fixedDelayString:  字符串形式,可以通過配置文件指定

(3)異步定時任務

啟動類里面使用@EnableAsync注解開啟功能,自動掃描
定義異步任務類并使用@Component標記組件被容器掃描,異步方法加上@Async
①要把異步任務封裝到類里面,不能直接寫到Controller
②增加Future<String> 返回結果 AsyncResult<String>("task執行完成");  
③如果需要拿到結果 需要判斷全部的 task.isDone()

十二、SpringBoot攔截器、過濾器、監聽器

(1)SpringBoot啟動默認加載的Filter

characterEncodingFilter
hiddenHttpMethodFilter
httpPutFormContentFilter
requestContextFilter

(2)Filter優先級

Ordered.HIGHEST_PRECEDENCE
Ordered.LOWEST_PRECEDENCE

(3)自定義Filter

1)使用Servlet3.0的注解進行配置
2)啟動類里面增加 @ServletComponentScan,進行掃描
3)新建一個Filter類,implements Filter,并實現對應的接口
4) @WebFilter 標記一個類為filter,被spring進行掃描
urlPatterns:攔截規則,支持正則
5)控制chain.doFilter的方法的調用,來實現是否通過放行
  不放行,web應用resp.sendRedirect("/index.html");
場景:權限控制、用戶登錄(非前端后端分離場景)等

(4)Servlet3.0的注解自定義原生Listener監聽器

自定義Listener(常用的監聽器 servletContextListener、httpSessionListener、servletRequestListener)
@WebListener

public class RequestListener implements ServletRequestListener {

@Override

public void requestDestroyed(ServletRequestEvent sre) {
// TODO Auto-generated method stub
System.out.println("======requestDestroyed========");
}

@Override

public void requestInitialized(ServletRequestEvent sre) {
System.out.println("======requestInitialized========");
}

(5)自定義攔截器
1)implements WebMvcConfigurer
@Configuration

public class CustomWebMvcConfigurer implements WebMvcConfigurer  {

@Override

public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginIntercepter()).addPathPatterns("/api2/*/**");
//.excludePathPatterns("/api2/xxx/**");
WebMvcConfigurer.super.addInterceptors(registry);
}
}

2)自定義攔截器 HandlerInterceptor
preHandle:調用Controller某個方法之前
postHandle:Controller之后調用,視圖渲染之前,如果控制器Controller出現了異常,則不會執行此方法
afterCompletion:不管有沒有異常,這個afterCompletion都會被調用,用于資源清理
3)按照注冊順序進行攔截,先注冊,先被攔截

(6)對比

Filter是基于函數回調 doFilter(),而Interceptor則是基于AOP思想
Filter在只在Servlet前后起作用,而Interceptor夠深入到方法前后、異常拋出前后等
Filter依賴于Servlet容器即web應用中,而Interceptor不依賴于Servlet容器所以可以運行在多種環境。
在接口調用的生命周期里,Interceptor可以被多次調用,而Filter只能在容器初始化時調用一次。
Filter和Interceptor的執行順序:過濾前->攔截前->action執行->攔截后->過濾后

十三、兩種部署方式jar和war

(1)jar包方式啟動

添加maven插件,執行打包即可,啟動命令:    java -jar **.jar &

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

(2)war包方式啟動

a.在pom.xml中將打包形式 jar 修改為war  <packaging>war</packaging>
b.添加構建項目名稱 <finalName>xdclass_springboot</finalName>
c.修改啟動類

public class XdclassApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(XdclassApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(XdclassApplication.class, args);
}
}

d.打包項目,啟動tomcat

十四、SpringBoot多環境配置

①不同環境使用不同配置
例如數據庫配置,在開發的時候,我們一般用開發數據庫,而在生產環境的時候,我們是用正式的數據
②配置文件存放路徑
classpath根目錄的“/config”包下
classpath的根目錄下
③spring boot允許通過命名約定按照一定的格式(application-{profile}.properties)來定義多個配置文件

感謝各位的閱讀!看完上述內容,你們對springboot 配置注解是什么意思大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贞丰县| 安化县| 莲花县| 乐平市| 甘谷县| 定日县| 清原| 武穴市| 庆安县| 秦皇岛市| 威宁| 都江堰市| 固阳县| 巴东县| 遵义市| 东乌| 沂南县| 剑川县| 南安市| 宁阳县| 静宁县| 教育| 阜平县| 满城县| 花莲县| 康乐县| 离岛区| 瑞丽市| 广东省| 龙口市| 张家口市| 时尚| 平安县| 枣阳市| 土默特左旗| 南乐县| 平顺县| 祁阳县| 兴安盟| 庄浪县| 达拉特旗|