Heim > Java > javaLernprogramm > Hauptteil

Detaillierte Einführung in Springboot-Konfigurationsanmerkungen

不言
Freigeben: 2019-02-01 11:36:39
nach vorne
4479 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine detaillierte Einführung in die Springboot-Konfiguration. Er hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.

1. Übersicht

Spring Boot wurde entwickelt, um den anfänglichen Konstruktions- und Entwicklungsprozess neuer Spring-Anwendungen zu vereinfachen. Spring Boot ist keine Erweiterung der Spring-Funktionalität, sondern bietet eine Möglichkeit, Spring schnell zu nutzen.

2. Funktionen

①Erstellen Sie eine unabhängige Spring-Anwendung
②Eingebetteter Tomcat, keine Notwendigkeit, WAR-Dateien bereitzustellen
③Maven-Konfiguration vereinfachen
④Spring automatisch konfigurieren
⑤ Bietet Produktions- Bereite Funktionen wie Indikatoren, Gesundheitsprüfungen und externe Konfiguration
⑥ Funktioniert sofort, ohne Codegenerierung und ohne XML-Konfiguration.

3. Annotationsbeschreibung

@SpringBootApplication Die Hauptanmerkung des Spring Boot-Projekts besteht darin, die automatische Konfiguration zu ermöglichen, was äquivalent ist Eine XML-Konfigurationsdatei. Konfiguration Spring
@Bean wirkt auf Methoden, was
in der XML-Konfiguration entspricht. @ComponentScan scannt standardmäßig das Geschwisterverzeichnis der Klasse, in der sich @SpringBootApplication befindet .
@PropertySource("classpath:env.properties") liest die externe Konfigurationsdatei und erhält den Wert über die @Value-Annotation
@Transactional deklariert die Transaktion

4. Erläuterung der SpringBoot-Verzeichnisdateistruktur

src/main/java: Code speichern

src/main/resources
static: Statische Dateien wie CSS, JS, Bild speichern (Zugriffsmethode http://localhost:8080/ js/main. js)
templates: speichert statische Seiten jsp, html, tpl
config: speichert Konfigurationsdateien, application.properties

5. SpringBoots Standardpfad zum Laden von Dateien


/META-INF/resources/
/resources/
/static/
/public/
Nach dem Login kopieren

SpringBoot-Standardkonfiguration


spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
Nach dem Login kopieren

6. Spring Boot Hot Deployment

①Abhängigkeiten hinzufügen                                                                          >

③idea set Auto-Compile, dann Umschalt+Strg+Alt+/, Wählen Sie Registry
und überprüfen Sie „compiler.automake.allow.when.app.running“

④Dateien, die nicht im laufenden Betrieb bereitgestellt werden

1. /META-INF/maven, /META-INF/resources, /resources, /static, /public oder /templates

2. Die angegebene Datei wird nicht im laufenden Betrieb bereitgestellt spring.devtools.restart.exclude=static /**,public/**
3. Lösen Sie die Datei manuell aus restart spring.devtools.restart.trigger-file=trigger.txt

Ändern Sie den Code ohne Neustart und steuern Sie ihn über einen Text


7. Passen Sie das Startbanner an


①Besuchen Sie http://patorjk.com/software/taag/#p=display&h=3&v=3&f=4Max&t=itcast%20Spring%20Boot

②Kopieren Sie die generierten Zeichen in eine Textdatei und nennen Sie die Datei banner.txt

③Banner.txt in das Ressourcenverzeichnis des Projekts kopieren

8. Globale Konfigurationsdatei (application.properties oder application.yml)


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Nach dem Login kopieren

Weitere Klicks finden Sie unter der offiziellen Website-Adresse


9. Starter-Pom

Spring-Boot-Starter-Kern Spring-Boot-Starter, einschließlich automatischer Konfigurationsunterstützung, Protokolle und YAML
spring-boot-starter-amqp Unterstützung für erweiterte Nachrichten Warteschlangenprotokolle, implementiert durch Spring-Rabbit

Spring-Boot-Starter-Aop Unterstützung für aspektorientierte Programmierung, einschließlich Spring-Aop und AspectJ

Spring-Boot-Starter-Data-Elasticsearch Unterstützung für die Suchmaschine Elasticsearch, einschließlich spring-data-elasticsearch

spring-boot-starter-data-jpa Unterstützung für Java-Persistenz-API, einschließlich spring-data-jpa, spring-orm und Hibernate

spring-boot-starter-jdbc Unterstützung für JDBC-Datenbanken
spring-boot-starter-redis Unterstützung für REDIS-Schlüsselwert-Datenspeicherung, einschließlich Spring-Redis
spring-boot-starter-data-redis
spring-boot-starter-security Unterstützung für spring-security
spring-boot-starter-test Unterstützung für gängige Testabhängigkeiten, einschließlich JUnit, Hamcrest und Mockito, Spring-Test
spring-boot-starter-velocity Unterstützung für die Velocity-Vorlagen-Engine
spring-boot-starter-activemq
spring-boot-starter-freemarker
spring-boot-starter-thymeleaf
spring -boot-starter-web unterstützt die Full-Stack-Webentwicklung, einschließlich Tomcat und spring-webmvc
spring-boot- starter-webflux
(Weitere Konfigurationen finden Sie in Baidu)

10. Häufig verwendetes JSON-Framework

(1) JavaBean wird in Json serialisiert, Leistung:
Jackson > ; Gson > Json-lib

(2) Jackson verarbeitet verwandte Kommentare

Das angegebene Feld wird nicht zurückgegeben: @JsonIgnore

Geben Sie das Datumsformat an: @JsonFormat(pattern="yyyy-MM-dd hh:mm :ss",locale="zh",timezone="GMT+8")

Leere Felder werden nicht zurückgegeben: @JsonInclude(Include.NON_NUll)
Alias ​​angeben: @JsonProperty

11. SpringBoot verwendet Aufgabenplanung

(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 返回结果 AsyncResult("task执行完成");
③如果需要拿到结果 需要判断全部的 task.isDone()

十二、SpringBoot拦截器、过滤器、监听器

(1)SpringBoot启动默认加载的Filter

characterEncodingFilter
hiddenHttpMethodFilter
httpPutFormContentFilter
requestContextFilter
Nach dem Login kopieren

(2)Filter优先级

Ordered.HIGHEST_PRECEDENCE
Ordered.LOWEST_PRECEDENCE
Nach dem Login kopieren

(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========");
}
Nach dem Login kopieren

@Override

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

(5)自定义拦截器
1)implements WebMvcConfigurer
@Configuration

public class CustomWebMvcConfigurer implements WebMvcConfigurer  {
Nach dem Login kopieren

@Override

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

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>
Nach dem Login kopieren

(2)war包方式启动

a.在pom.xml中将打包形式 jar 修改为war war
b.添加构建项目名称 xdclass_springboot
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);
}
}
Nach dem Login kopieren

 d.打包项目,启动tomcat

十四、SpringBoot多环境配置

①不同环境使用不同配置
例如数据库配置,在开发的时候,我们一般用开发数据库,而在生产环境的时候,我们是用正式的数据
②配置文件存放路径
classpath根目录的“/config”包下
classpath的根目录下
③spring boot允许通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件  

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Springboot-Konfigurationsanmerkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage