国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的

這篇具有很好參考價(jià)值的文章主要介紹了@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

前言

spring作為主流的 Java Web 開(kāi)發(fā)的開(kāi)源框架,是Java 世界最為成功的框架,持續(xù)不斷深入認(rèn)識(shí)spring框架是Java程序員不變的追求。

本篇博客介紹SpringBootApplicant注解的自動(dòng)加載相關(guān)內(nèi)容

其他相關(guān)的Spring博客文章列表如下:

Spring基礎(chǔ)(核心容器)——從配置文件到注解開(kāi)發(fā) & 創(chuàng)建對(duì)象+成員變量賦值IOC & 增強(qiáng)方法AOP

Spring進(jìn)階(AOP的理解)——靜態(tài)/動(dòng)態(tài)代理 & 面向切面編程AOP(Aspect Oriented Programming) & 日志記錄 & 增強(qiáng)方法

Spring進(jìn)階(AOP的應(yīng)用)—— 動(dòng)態(tài)代理AOP后controller層的private方法訪問(wèn)失效的問(wèn)題

Spring基礎(chǔ)(Web-MVC)——在idea中新建springWeb項(xiàng)目 & 瀏覽器請(qǐng)求 和 服務(wù)器響應(yīng) & SpringMvc文件相關(guān)

SpringMvc框架——【深入】SpringMVC 的運(yùn)行流程:從客戶端發(fā)送請(qǐng)求request到springMvc框架返回響應(yīng)response的全流程分析 & DispatcherServlet

SpringBoot基礎(chǔ)——追根溯源servlet是啥,tomcat是啥,maven是啥 & springBoot項(xiàng)目初步,maven構(gòu)建,打包 & 測(cè)試

引出


1.mybatis相關(guān)包導(dǎo)入沒(méi)寫(xiě)配置,@SpringBootApplication注解加入排除自動(dòng)裝配的相關(guān)內(nèi)容;
2.在分布式架構(gòu)下,如果某個(gè)模塊想要其他模塊下的類,需要加入@ComponentScan(basePackages = “com.tianju.domain”)進(jìn)行包的掃描;
3.如果不加包掃描的注解,則需要在想要被注入到spring容器中的模塊的resource下,即根目錄下新建文件夾META-INF,新建文件spring.factories,寫(xiě)相關(guān)內(nèi)容;

mybatis相關(guān)包導(dǎo)入沒(méi)寫(xiě)配置

1.@SpringBootApplication注解

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

2.如果沒(méi)有寫(xiě)url等相關(guān)配置

導(dǎo)入了mysql,mybatis,druid的依賴,但是application.yml文件中沒(méi)有寫(xiě)相關(guān)的數(shù)據(jù)源url等的配置

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

此時(shí),需要在注解@SpringBootApplication中加入排除自動(dòng)裝配的相關(guān)內(nèi)容;加入排除后,再次啟動(dòng)項(xiàng)目,不再報(bào)錯(cuò)。

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

package com.tianju;

import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclude =
        {DruidDataSourceAutoConfigure.class,
        DataSourceAutoConfiguration.class}
)
public class TestApp {
    public static void main(String[] args) {
        SpringApplication.run(TestApp.class);
    }
}

分布式架構(gòu)下如何加載其他模塊的類

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

mybatisplus使用分頁(yè)插件,攔截器策略,在在一個(gè)引入位置寫(xiě)攔截器,其它模塊引入配置類,需要使用@ComponentScan(base="配置類所在的包)

1.單體架構(gòu)的一般模式

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

package com.tinaju.bm.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 分頁(yè)需要加一個(gè)攔截器
 */
@Configuration
public class MybatisPlusConfig {

    @Bean // 放到容器中
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        paginationInnerInterceptor.setOverflow(true);
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        return mybatisPlusInterceptor;
    }
}

在單體模式下,會(huì)自動(dòng)掃描主啟動(dòng)類同級(jí)下面的注解,就掃描到了標(biāo)了注解的@Configuration 的分頁(yè)攔截器

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

2.分布式架構(gòu)的模式

在分布式架構(gòu)下,如果某個(gè)模塊想要其他模塊下的類,需要加入@ComponentScan(basePackages = “com.tianju.domain”)進(jìn)行包的掃描

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

package com.tianju.smovie.genre;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@SpringBootApplication
@EnableDiscoveryClient
//@EnableJpaRepositories // 不加會(huì)報(bào)錯(cuò) Not a managed type: class com.tianju.domain.entity.Genre
@EntityScan(basePackages = "com.tianju.domain.entity") // TODO:jpa需要加這個(gè)
@ComponentScan(basePackages = "com.tianju.domain")
public class GenreApp {
    public static void main(String[] args) {
        SpringApplication.run(GenreApp.class);
    }
}

如果不加的話,就不會(huì)加載到容器中

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

另一種方式:設(shè)置自動(dòng)裝配

如果不加上面包掃描的注解,則需要在想要被注入到spring容器中的模塊的resource下,即根目錄下新建文件夾META-INF,新建文件spring.factories,寫(xiě)相關(guān)內(nèi)容。

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.tianju.domain.config.MybatisPlusConfig

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

排除在外相關(guān)

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

問(wèn)題:使用nacos的時(shí)候怎么發(fā)現(xiàn)的?

如下圖所示,nacos里面就有文件夾META-INF,下面有個(gè)文件spring.factories,里面的東西就會(huì)被加載進(jìn)來(lái)

@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的,SpringBoot,分布式,spring boot

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration,\
  com.alibaba.cloud.nacos.endpoint.NacosDiscoveryEndpointAutoConfiguration,\
  com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration,\
  com.alibaba.cloud.nacos.discovery.NacosDiscoveryClientConfiguration,\
  com.alibaba.cloud.nacos.discovery.reactive.NacosReactiveDiscoveryClientConfiguration,\
  com.alibaba.cloud.nacos.discovery.configclient.NacosConfigServerAutoConfiguration,\
  com.alibaba.cloud.nacos.loadbalancer.LoadBalancerNacosAutoConfiguration,\
  com.alibaba.cloud.nacos.NacosServiceAutoConfiguration,\
  com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
  com.alibaba.cloud.nacos.discovery.configclient.NacosDiscoveryClientConfigServiceBootstrapConfiguration
org.springframework.boot.SpringApplicationRunListener=\
  com.alibaba.cloud.nacos.logging.NacosLoggingAppRunListener

總結(jié)


1.mybatis相關(guān)包導(dǎo)入沒(méi)寫(xiě)配置,@SpringBootApplication注解加入排除自動(dòng)裝配的相關(guān)內(nèi)容;
2.在分布式架構(gòu)下,如果某個(gè)模塊想要其他模塊下的類,需要加入@ComponentScan(basePackages = “com.tianju.domain”)進(jìn)行包的掃描;
3.如果不加包掃描的注解,則需要在想要被注入到spring容器中的模塊的resource下,即根目錄下新建文件夾META-INF,新建文件spring.factories,寫(xiě)相關(guān)內(nèi)容;文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-722137.html

到了這里,關(guān)于@SpringBootApplication注解的理解——如何排除自動(dòng)裝配 & 分布式情況下如何自動(dòng)加載 & nacos是怎么被發(fā)現(xiàn)的的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包