欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

程序員需要掌握SpringBoot中的哪些注解-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)程序員需要掌握SpringBoot中的哪些注解的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

10年積累的做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有廉江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

前言

Spring經(jīng)歷了如下幾個(gè)階段:

第一階段:xml配置

在Spring 1.x時(shí)代,使用Spring開發(fā)滿眼都是xml配置的Bean,隨著項(xiàng)目的擴(kuò)大,我們需要把xml配置文件放到不同的配置文件里,那時(shí)需要頻繁的在開發(fā)的類和配置文件之間進(jìn)行切換

第二階段:注解配置

在Spring 2.x 時(shí)代,隨著JDK1.5帶來(lái)的注解支持,Spring提供了聲明Bean的注解(例如@Component、@Service),大大減少了配置量。主要使用的方式是應(yīng)用的基本配置(如數(shù)據(jù)庫(kù)配置)用xml,業(yè)務(wù)配置用注解

第三階段:java配置

Spring 3.0 引入了基于 Java 的配置能力,這是一種類型安全的可重構(gòu)配置方式,可以代替 XML。我們目前剛好處于這個(gè)時(shí)代,Spring4.x和Spring Boot都推薦使用Java配置。

所有這些xml配置都代表了開發(fā)時(shí)的損耗。 因?yàn)樵谒伎?nbsp;Spring 特性配置和解決業(yè)務(wù)問(wèn)題之間需要進(jìn)行思維切換,所以寫配置擠占了寫應(yīng)用程序邏輯的時(shí)間。Spring Boot 讓這一切成為了過(guò)去。Spring Boot 簡(jiǎn)化了基于Spring的應(yīng)用開發(fā),只需要“run”就能創(chuàng)建一個(gè)獨(dú)立的、生產(chǎn)級(jí)別的Spring應(yīng)用。Spring Boot為Spring平臺(tái)及第三方庫(kù)提供開箱即用的設(shè)置(提供默認(rèn)設(shè)置),這樣我們就可以簡(jiǎn)單的開始。多數(shù)Spring Boot應(yīng)用只需要很少的Spring配置。我們可以使用SpringBoot創(chuàng)建java應(yīng)用,并使用java –jar 啟動(dòng)它,或者采用傳統(tǒng)的war部署方式。這也是SpringBoot讓越來(lái)越多的開發(fā)人員使用的主要原因之一。下面我們就來(lái)詳細(xì)講解SpringBoot幾個(gè)很重要的注解:@Configuration , @Bean,@SpringBootApplication,@ComponentScan

@ Configuration和@Bean注解

Spring的Java配置方式是通過(guò) @Configuration和 @Bean 這兩個(gè)注解實(shí)現(xiàn)的,這兩個(gè)注解是從Spring3.0之后就開始有了:

1、@Configuration 作用于類上,相當(dāng)于一個(gè)xml配置文件;

2、@Bean 作用于方法上,相當(dāng)于xml配置中的<bean>;

案例

@Configuration

public class DemoConfigure {

    @Bean

    public User userBean(){

        User user=new User();

        user.setAge(100);

        user.setName("jack");

        user.setPwd("123");

        return user;

    }

}

 

測(cè)試如下:

package com.example.springboot01;

import com.example.springboot01.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot01ApplicationTests {

  @Autowired
  private User user;
  @Test
  public void contextLoads() {
      System.out.println(user);
  }

}

 

打?。?/p>

User{name='jack', pwd='123', age=100}

@SpringBootApplication

@SpringBootApplication注解源碼如下:

 

    package org.springframework.boot.autoconfigure;

    @Target(ElementType.TYPE)

    @Retention(RetentionPolicy.RUNTIME)

    @Documented

    @Inherited

    @SpringBootConfiguration

    @EnableAutoConfiguration

    @ComponentScan(excludeFilters = {

          @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),

          @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

    public @interface SpringBootApplication {

    

    }

 

@SpringBootApplication是一個(gè)復(fù)合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。

- @SpringBootConfiguration繼承自@Configuration,二者功能也一致,標(biāo)注當(dāng)前類是配置類,并會(huì)將當(dāng)前類內(nèi)聲明的一個(gè)或多個(gè)以@Bean注解標(biāo)記的方法的實(shí)例納入到srping容器中,并且實(shí)例名就是方法名。

- @EnableAutoConfiguration的作用啟動(dòng)自動(dòng)的配置,@EnableAutoConfiguration注解的意思就是Springboot根據(jù)你添加的jar包來(lái)配置你項(xiàng)目的默認(rèn)配置,比如根據(jù)spring-boot-starter-web ,來(lái)判斷你的項(xiàng)目是否需要添加了webmvc和tomcat,就會(huì)自動(dòng)的幫你配置web項(xiàng)目中所需要的默認(rèn)配置。

- @ComponentScan,掃描當(dāng)前包及其子包下被@Component,@Controller,@Service,@Repository注解標(biāo)記的類并納入到spring容器中進(jìn)行管理。是以前的<context:component-scan>(以前使用在xml中使用的標(biāo)簽,用來(lái)掃描包)。

@SpringBootApplication指定掃描某些包

@SpringBootApplication注解默認(rèn)掃描的是當(dāng)前類所在的包和子包。自己可以通過(guò)屬性來(lái)設(shè)置掃描其他的包,設(shè)置了之后默認(rèn)值就不在有用。

@SpringBootApplication(scanBasePackageClasses = {TestConfig.class,TestController.class})
通過(guò)設(shè)置scanBasePackageClasses屬性來(lái)制定,只掃描哪些配置類(@Configuration注解的類)。

或者如下設(shè)置:

@SpringBootApplication(scanBasePackageClasses = {Springboot01Application.class,TestConfig.class})
指定掃描這些類所在的包和子包。

設(shè)置不自動(dòng)裝配

springboot 的自動(dòng)配置可以幫我們節(jié)省很多時(shí)間,但是有時(shí)候如果我們不想在引入依賴包的情況自動(dòng)配置,則可以通過(guò)相關(guān)設(shè)置取消

在@SpringBootApplication(exclude = {JpaRepositoriesAutoConfiguration.class, RedisAutoConfiguration.class})注解內(nèi)部將不需要自動(dòng)配置的依賴通過(guò)exclude參數(shù)指定即可,可以指定多個(gè)類

所有自動(dòng)配置的類全都在:org.springframework.boot.autoconfigure包下。只能排出自動(dòng)配置的類。

程序員需要掌握SpringBoot中的哪些注解

@ComponentScan

@ComponentScan注解在Spring的注解中也起到到相當(dāng)重要的作用,它可以自定義Spring掃描的包,也就是它默認(rèn)會(huì)掃描標(biāo)注了@Controller、@Service、@Component以及@Repository注解的類,并實(shí)例化這些組件到SpringIOC容器中,它有個(gè)配置屬性:basePackages,也就是指定掃描的包,如果不知道,它會(huì)默認(rèn)掃描配置了該注解的類的包所在的路徑(包括子包)。我們看@SpringBootConfiguration注解的源碼中有段代碼:

@AliasFor(

 annotation = ComponentScan.class,

 attribute = "basePackages"

)

String[] scanBasePackages() default {};

scanBasePackages屬性,指定到了@ComponentScan注解的basePackages屬性,所有在SpringBoot中,我們同樣可以通過(guò)scanBasePackages屬性指定包掃描的路徑(如不指定,會(huì)默認(rèn)掃描主程序類所在的包路徑以及子包下的類):

@SpringBootApplication(scanBasePackages = "com.seagetech.springbootdemo")

感謝各位的閱讀!關(guān)于“程序員需要掌握SpringBoot中的哪些注解”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

當(dāng)前標(biāo)題:程序員需要掌握SpringBoot中的哪些注解-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://chinadenli.net/article44/dgdihe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、服務(wù)器托管、微信公眾號(hào)、App開發(fā)、品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)