国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot [配置-下篇]

StonePanda / 2808人閱讀

摘要:進行異常的捕捉與錯誤信息頁面的定制。告訴,這是一個對象,該對象應該被注冊為在應用程序上下文中的。不同框架的不同配置這里以作為演示默認情況下,保護已啟用。你必須配置包含令牌的所有的網頁來工作。該命名結構旨在幫你找到需要的。

導讀:

在上篇文章中我們了解到Spring Boot 的一些常用的外部化配置,在本篇中我們將會繼續對類的配置進行了解

一個簡單的例子[錯誤頁面定制]:

在 Spring Boot 中的約定大于配置 與 自動裝配使我們可以不必去像以往一樣配置各個框架之間的依賴與注入,但是有時Spring Boot 提供給我們的默認配置并不能完全滿足我們的需求,因此個性化的配置或者叫自定義裝配內容便為我們提供了這種便利。
這里我們以一個簡單的在Spring Boot 中自定義錯誤頁面的例子做為展示:

@Configuration
public class ErrorPageConfig {

    @Bean
    public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){
        return new MyCustomizer();
    }

    private static class MyCustomizer implements EmbeddedServletContainerCustomizer {

        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            container.addErrorPages(new ErrorPage(HttpStatus.FORBIDDEN, "/403"));
            container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"));
        }

    }

}

EmbeddedServletContainerCustomizer 正如名字一樣 - 嵌入式Servlet容器定制器,我們通過對其方法的覆蓋重新達到了自定義錯誤頁面的效果。
當然 如果使用的是Spring MVC 的話我們也可以使用 Spring MVC 提供的@ExceptionHandler方法和@ControllerAdvice。ErrorController進行異常的捕捉與錯誤信息頁面的定制。

備注:
@Configuration:表示這個類可以使用 Spring IoC 容器作為 bean 定義的來源。
@Bean :告訴 Spring,這是一個bean對象,該對象應該被注冊為在 Spring 應用程序上下文中的 bean。

不同框架的不同配置:

這里以Spring Security 作為演示:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private CustomAuthenticationProvider customAuthenticationProvider;
    

    @Override  
    protected void configure(AuthenticationManagerBuilder auth)  
            throws Exception {   
        auth.authenticationProvider(customAuthenticationProvider);
    }  

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/reg", "/login", "/css/**", "/js/**", "/img/**", "/music/**", "/plugins/**", "/upload/**", "/api/**").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .defaultSuccessUrl("/")
                .permitAll()
                .and()
            .logout()
                .permitAll();
//      默認情況下,CSRF保護已啟用。你必須配置包含_csrf令牌的所有的網頁來工作。
//      你可以隨時禁用CSRF保護。如果在代碼中配置: 解決post請無法提交
      http
      .csrf().disable();
      //in a frame because it set "X-Frame-Options" to "DENY".
          http
      .headers()
         .frameOptions()
            .sameOrigin();

    }

}

在一般情況下我們要對Spring Boot 集成的一些框架做些自定義配置時, 可以去實現 對應框架的XXXConfigurerAdapter,然后通過EnableXXX注解進行修飾 之后用 Configuration 注解修飾,最后對其方法進行覆蓋從而到達自定義配置的目的,當然具體的配置還是需求去翻閱對應的文檔說明來了解。

更多Spring Boot項目提供的框架整合(Starter POMs):

Starter POMs是可以包含到應用中的一個方便的依賴關系描述符集合。你可以獲取所有Spring及相關技術的一站式服務,而不需要翻閱示例代碼,拷貝粘貼大量的依賴描述符。例如,如果你想使用Spring和JPA進行數據庫訪問,只需要在你的項目中包含spring-boot-starter-data-jpa依賴,然后你就可以開始了。

該starters包含很多你搭建項目,快速運行所需的依賴,并提供一致的,管理的傳遞依賴集。

名字有什么含義:所有的starters遵循一個相似的命名模式:spring-boot-starter-,在這里是一種特殊類型的應用程序。該命名結構旨在幫你找到需要的starter。很多IDEs集成的Maven允許你通過名稱搜索依賴。例如,使用相應的Eclipse或STS插件,你可以簡單地在POM編輯器中點擊ctrl-space,然后輸入"spring-boot-starter"可以獲取一個完整列表。

下面的應用程序starters是Spring Boot在org.springframework.boot組下提供的:

spring-boot-starter 核心 POM,包含自動配置支持、日志庫和對 YAML 配置文件的支持。

spring-boot-starter-amqp 通過 spring-rabbit 支持 AMQP。

spring-boot-starter-aop 包含 spring-aop 和 AspectJ 來支持面向切面編程(AOP)。

spring-boot-starter-batch 支持 Spring Batch,包含 HSQLDB。

spring-boot-starter-data-jpa 包含 spring-data-jpa、spring-orm 和 Hibernate 來支持 JPA。

spring-boot-starter-data-mongodb 包含 spring-data-mongodb 來支持 MongoDB。

spring-boot-starter-data-rest 通過 spring-data-rest-webmvc 支持以 REST 方式暴露 Spring Data 倉庫。

spring-boot-starter-jdbc 支持使用 JDBC 訪問數據庫。

spring-boot-starter-security 包含 spring-security。

spring-boot-starter-test 包含常用的測試所需的依賴,如 JUnit、Hamcrest、Mockito 和 spring-test 等。

spring-boot-starter-velocity 支持使用 Velocity 作為模板引擎。

spring-boot-starter-web 支持 Web 應用開發,包含 Tomcat 和 spring-mvc。

spring-boot-starter-websocket 支持使用 Tomcat 開發 WebSocket 應用。

spring-boot-starter-ws 支持 Spring Web Services。

spring-boot-starter-actuator 添加適用于生產環境的功能,如性能指標和監測等功能。

spring-boot-starter-remote-shell 添加遠程 SSH 支持。

spring-boot-starter-jetty 使用 Jetty 而不是默認的 Tomcat 作為應用服務器。

spring-boot-starter-log4j 添加 Log4j 的支持。

spring-boot-starter-logging 使用 Spring Boot 默認的日志框架 Logback。

spring-boot-starter-tomcat 使用 Spring Boot 默認的 Tomcat 作為應用服務器。

結語:

關于Spring Boot 常用的一些配置方式做了一個簡要的介紹,從這些配置中我們也可以看到Spring Boot 為我們提供的各種默認配置的好處,當我們不需要這些默認值時,我們有兩種常用的覆蓋方式:
1.通過 application.yml文件進行定義。
2.通過實現對應的ConfigurerAdapter,并托管給Spring 容器來進行定義。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66770.html

相關文章

  • 一文掌握 Spring Boot Profiles

    摘要:需要注意的是必須要使用版本為以上才支持屬性。與格式文件不同,正對不同的,無法在一個文件設置,官方采用命名形式為格式來達成一樣的效果。采用方式添加的是屬于額外激活的,也就是說覆蓋掉外部傳入的指定的。 showImg(https://segmentfault.com/img/remote/1460000019924197?w=1050&h=500); Spring Boot Profile...

    Eidesen 評論0 收藏0
  • 服務治理:Spring Cloud Eureka(上)

    摘要:服務治理上是由開源的一款基于的服務治理組件,包括及。由于種種原因,版本已經凍結開發,目前最新版本是年月份發布的版本。服務發現選型其中比較受眾關注的就是和這兩款產品,這兩款產品各有所長,各有所適,開發者可用按需選擇。 服務治理:Spring Cloud Eureka(上) Netflix Eureka是由Netflix開源的一款基于REST的服務治理組件,包括Eureka Server及...

    dackel 評論0 收藏0
  • Spring Boot 2.x (十八):郵件服務一文打盡

    摘要:前景介紹在日常的工作中,我們經常會用到郵件服務,比如發送驗證碼,找回密碼確認,注冊時郵件驗證等,所以今天在這里進行郵件服務的一些操作。 前景介紹 在日常的工作中,我們經常會用到郵件服務,比如發送驗證碼,找回密碼確認,注冊時郵件驗證等,所以今天在這里進行郵件服務的一些操作。 大致思路 我們要做的其實就是把Java程序作為一個客戶端,然后通過配置SMTP協議去連接我們所使用的發送郵箱(fr...

    idealcn 評論0 收藏0
  • Spring Boot [集成-Spring Security]

    摘要:導讀在上一篇文章中對集成做了一個簡單的介紹,這篇文章中主要圍繞集成展開文章末尾附有學習資料。當我們使用元素來定義一個時,如果沒有指定對應關聯的對象,默認會使用。在進行認證的時候需要一個來獲取用戶的信息,其中包括用戶名密碼和所擁有的權限等。 導讀 在上一篇文章中對Spring Boot 集成Shrio做了一個簡單的介紹,這篇文章中主要圍繞Spring Boot 集成 Spring S...

    hedzr 評論0 收藏0
  • Spring Boot2(二):使用Spring Boot2集成Mybatis緩存機制

    摘要:本文章的源碼再文章末尾什么是查詢緩存有一級緩存和二級緩存。默認開啟一級緩存。證明了一級緩存只是在數據庫會話內部共享的。但是,整合到中后,一級緩存就會被關閉。根據時間表比如沒有刷新間隔緩存不會以任何時間順序來刷新。 倉庫地址:spring-boot-learning歡迎star、fork,給作者一些鼓勵 學習SpringBoot集成Mybatis的第二章,了解到Mybatis自帶的緩存機...

    mikasa 評論0 收藏0

發表評論

0條評論

StonePanda

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<