国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Spring Boot 和 Spring 到底有啥區(qū)別你知道嗎

Spring Boot 和 Spring 到底有啥區(qū)別你知道嗎

2021-12-10 13:16思考思考學(xué)習(xí) Java教程

Spring Boot框架的核心就是自動配置,只要存在相應(yīng)的jar包,Spring就幫我們自動配置。接下來通過本文給大家介紹Spring與Spring boot的區(qū)別介紹,非常不錯,需要的朋友參考下吧

對于Spring和SpringBoot到底有什么區(qū)別,我聽到了很多答案,剛開始邁入學(xué)習(xí)SpringBoot的我當(dāng)時也是一頭霧水隨著經(jīng)驗的積累、我慢慢理解了這兩個框架到底有什么區(qū)別。

相信對于用了SpringBoot很久的同學(xué)來說,還不是很理解SpringBoot到底和Spring有什么區(qū)別,看完文章中的比較,或許你有了不同的答案和看法!

什么是Spring?

作為Java開發(fā)人員,大家都Spring都不陌生,簡而言之,Spring框架為開發(fā)Java應(yīng)用程序提供了全面的基礎(chǔ)架構(gòu)支持。它包含一些很好的功能,如依賴注入和開箱即用的模塊,如:

Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test

這些模塊縮短應(yīng)用程序的開發(fā)時間,提高了應(yīng)用開發(fā)的效率例如,在Java Web開發(fā)的早期階段,我們需要編寫大量的代碼來將記錄插入到數(shù)據(jù)庫中。但是通過使用Spring JDBC模塊的JDBCTemplate,我們可以將操作簡化為幾行代碼。

什么是Spring Boot?

Spring Boot基本上是Spring框架的擴展,它消除了設(shè)置Spring應(yīng)用程序所需的XML配置,為更快,更高效的開發(fā)生態(tài)系統(tǒng)鋪平了道路。

Spring Boot中的一些特征:

1)創(chuàng)建獨立的Spring應(yīng)用。

2)嵌入式Tomcat、Jetty、 Undertow容器(無需部署war文件)。

3)提供的starters 簡化構(gòu)建配置。

4)盡可能自動配置spring應(yīng)用。

5)提供生產(chǎn)指標,例如指標、健壯檢查和外部化配置

6)完全沒有代碼生成和XML配置要求。

需要更多大廠面試資料的話也可以點擊直接進入,免費獲取!暗號:CSDN

讓我們從配置分析這兩個框架

1、Maven依賴

首先,讓我們看一下使用Spring創(chuàng)建Web應(yīng)用程序所需的最小依賴項

?
1
2
3
4
5
6
7
8
9
10
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.1.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.0.RELEASE</version>
</dependency>

與Spring不同,Spring Boot只需要一個依賴項來啟動和運行Web應(yīng)用程序:

?
1
2
3
4
5
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.0.6.RELEASE</version>
</dependency>

在進行構(gòu)建期間,所有其他依賴項將自動添加到項目中。

另一個很好的例子就是測試庫。我們通常使用Spring Test,JUnit,Hamcrest和Mockito庫。在Spring項目中,我們應(yīng)該將所有這些庫添加為依賴項。但是在Spring Boot中,我們只需要添加spring-boot-starter-test依賴項來自動包含這些庫。

Spring Boot為不同的Spring模塊提供了許多依賴項。

一些最常用的是:

spring-boot-starter-data-jpa

spring-boot-starter-security

spring-boot-starter-test

spring-boot-starter-web

spring-boot-starter-thymeleaf

2、MVC配置

讓我們來看一下Spring和Spring Boot創(chuàng)建JSP Web應(yīng)用程序所需的配置。

Spring需要定義調(diào)度程序servlet,映射和其他支持配置。我們可以使用 web.xml 文件或Initializer類來完成此操作:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyWebAppInitializer implements WebApplicationInitializer {
  
    @Override
    public void onStartup(ServletContext container) {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.setConfigLocation("com.pingfangushi");
          container.addListener(new ContextLoaderListener(context));
          ServletRegistration.Dynamic dispatcher = container
          .addServlet("dispatcher", new DispatcherServlet(context));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }
}

還需要將@EnableWebMvc注釋添加到@Configuration類,并定義一個視圖解析器來解析從控制器返回的視圖:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@EnableWebMvc
@Configuration
public class ClientWebConfig implements WebMvcConfigurer {
   @Bean
   public ViewResolver viewResolver() {
      InternalResourceViewResolver bean
        = new InternalResourceViewResolver();
      bean.setViewClass(JstlView.class);
      bean.setPrefix("/WEB-INF/view/");
      bean.setSuffix(".jsp");
      return bean;
   }
}

再來看SpringBoot一旦我們添加了Web啟動程序,Spring Boot只需要在application配置文件中配置幾個屬性來完成如上操作:

?
1
2
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

上面的所有Spring配置都是通過一個名為auto-configuration的過程添加Boot web starter來自動包含的。

這意味著Spring Boot將查看應(yīng)用程序中存在的依賴項,屬性和bean,并根據(jù)這些依賴項,對屬性和bean進行配置。當(dāng)然,如果我們想要添加自己的自定義配置,那么Spring Boot自動配置將會退回。

3、配置模板引擎

現(xiàn)在我們來看下如何在Spring和Spring Boot中配置Thymeleaf模板引擎。

在Spring中,我們需要為視圖解析器添加thymeleaf-spring5依賴項和一些配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Configuration
@EnableWebMvc
public class MvcWebConfig implements WebMvcConfigurer {
 
    @Autowired
    private ApplicationContext applicationContext;
 
    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setApplicationContext(applicationContext);
        templateResolver.setPrefix("/WEB-INF/views/");
        templateResolver.setSuffix(".html");
        return templateResolver;
    }
 
    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());
        templateEngine.setEnableSpringELCompiler(true);
        return templateEngine;
    }
 
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(templateEngine());
        registry.viewResolver(resolver);
    }
}

Spring Boot1X只需要spring-boot-starter-thymeleaf的依賴項來啟用Web應(yīng)用程序中的Thymeleaf支持。

但是由于Thymeleaf3.0中的新功能,我們必須將thymeleaf-layout-dialect 添加為SpringBoot2XWeb應(yīng)用程序中的依賴項。配置好依賴,我們就可以將模板添加到src/main/resources/templates文件夾中,Spring Boot將自動顯示它們。

需要更多大廠面試資料的話也可以點擊直接進入,免費獲取!暗號:CSDN

4、Spring Security 配置

為簡單起見,我們使用框架默認的HTTP Basic身份驗證。讓我們首先看一下使用Spring啟用Security所需的依賴關(guān)系和配置。

Spring首先需要依賴spring-security-web和spring-security-config模塊。接下來, 我們需要添加一個擴展WebSecurityConfigurerAdapter的類,并使用@EnableWebSecurity注解:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Configuration
@EnableWebSecurity
public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
  
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
          .withUser("admin")
            .password(passwordEncoder()
            .encode("password"))
          .authorities("ROLE_ADMIN");
    }
  
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
          .anyRequest().authenticated()
          .and()
          .httpBasic();
    }
     
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

這里我們使用inMemoryAuthentication來設(shè)置身份驗證。同樣,Spring Boot也需要這些依賴項才能使其工作。但是我們只需要定義spring-boot-starter-security的依賴關(guān)系,因為這會自動將所有相關(guān)的依賴項添加到類路徑中。

應(yīng)用程序啟動引導(dǎo)配置

Spring和Spring Boot中應(yīng)用程序引導(dǎo)的基本區(qū)別在于servlet。

Spring使用web.xml或SpringServletContainerInitializer作為其引導(dǎo)入口點。

總結(jié)

本片文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!

原文鏈接:https://blog.csdn.net/m0_60707538/article/details/119960731

延伸 · 閱讀

精彩推薦
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發(fā)項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實現(xiàn)搶紅包功能

    Java實現(xiàn)搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品一区二区在线观看 | 久久久精品日本 | 国产在线精品一区二区三区 | 亚洲激情在线 | 亚洲免费一区 | 中文字幕一区二区三区四区 | 国产精品久久久久久亚洲调教 | 噜噜噜在线 | 精品国产髙清在线看国产毛片 | 国产精品第十页 | 国产高清精品一区 | 日韩中文字幕在线播放 | 国产老头老太作爱视频 | 最新精品国产 | 国产一区二区三区四区二区 | 中文字幕在线不卡 | 黄色毛片免费看 | 操操操影院 | 亚洲视频免费看 | 亚洲自拍偷拍精品 | 日本一区二区在线观看视频 | 国产一级片| 日本一区免费 | 欧美综合在线观看 | 青青国产视频 | 精品久久久精品 | 久草热8精品视频在线观看 欧美黄色小视频 | 精品国产乱码久久久久久1区2区 | 国产成人久久一区二区三区 | 日韩国产欧美一区 | 久久久久综合狠狠综合日本高清 | 老司机av导航 | av在线一区二区三区 | 99在线观看 | 黄色片在线播放 | 久久av综合 | 久久综合九色综合欧美狠狠 | 久久伊99综合婷婷久久伊 | 欧美三级电影在线播放 | 成人免费黄色 | 大胆一区 |