国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
序言
從程序的使用去入手分析
首頁 Java java教程 Springboot框架怎么實(shí)現(xiàn)自動裝配

Springboot框架怎么實(shí)現(xiàn)自動裝配

May 18, 2023 am 09:49 AM
springboot

序言

使用springboot框架,您可以輕松快速地構(gòu)建獨(dú)立的生產(chǎn)級別的spring應(yīng)用程序。springboot主要有以下的特性:

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

2.直接嵌入Tomcat等Web容器(不需要部署WAR文件)

3.提供固化的“starter”依賴,簡化構(gòu)建配置

4.當(dāng)條碼滿足時自動裝配Spring貨第三方類庫

5.提供運(yùn)維的特性,如指標(biāo)信息,健康檢查和外部配置

6.不需要XML配置。

從程序的使用去入手分析

引入mybatis的starter依賴和相關(guān)的數(shù)據(jù)庫驅(qū)動

      <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
      </dependency>

程序使用

//程序的啟動類
@SpringBootApplication
public class HelloApplication {
	public static void main(String[] args) { 
		SpringApplication.run(HelloApplication.class, args);
	}
//服務(wù)類
@Service
public interface UserService {
    @Autowired
    private UserXmlMapper userXmlMapper;
    @Test
    public void testFindAll2() {
        List<User> list = userXmlMapper.findAll();
        System.out.println(list);
    }
}
//Dao 操作
@Mapper
public interface UserXmlMapper {
    public List<User> findAll();
}

上面的代碼,大家都是很熟悉的,springboot是如何實(shí)現(xiàn) @Mapper的注解,就可以操作數(shù)據(jù)庫呢(就是中間有個橋梁,如何將springboot和mybatis連接起來的,而這個橋梁是如何實(shí)現(xiàn)的呢)

從啟動類尋找橋梁

Springboot框架怎么實(shí)現(xiàn)自動裝配

通過源碼可以知曉

橋梁 =@SpringBootApplication=>@EnableAutoConfiguration=>@Import({AutoConfigurationImportSelector.class})

分析源碼可知AutoConfigurationImportSelector的主要作用

  • 掃描classpath下所有的jar包

  • 在META-INF/spring.factories配置好的AutoConfiguration

  • 掃描出來需要執(zhí)行的AutoConfguration

回想再使用mybatis的時候,是需要引入mybatis的starter依賴包的,再結(jié)合AutoConfigurationImportSelector的第二點(diǎn)功能,可以到對應(yīng)的jar下找到mybatis的AutoConfguration。

Springboot框架怎么實(shí)現(xiàn)自動裝配

Springboot框架怎么實(shí)現(xiàn)自動裝配

也就是說spring-boot啟動【會創(chuàng)建個spring容器】的時候,會去執(zhí)行MybatisAutoConfiguration的邏輯【處理@Mapper的類(掃描出來注入到srping容器)和數(shù)據(jù)庫連接等功能】。

以上是Springboot框架怎么實(shí)現(xiàn)自動裝配的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

Springboot怎么集成Jasypt實(shí)現(xiàn)配置文件加密 Springboot怎么集成Jasypt實(shí)現(xiàn)配置文件加密 Jun 01, 2023 am 08:55 AM

Jasypt介紹Jasypt是一個java庫,它允許開發(fā)員以最少的努力為他/她的項(xiàng)目添加基本的加密功能,并且不需要對加密工作原理有深入的了解用于單向和雙向加密的高安全性、基于標(biāo)準(zhǔn)的加密技術(shù)。加密密碼,文本,數(shù)字,二進(jìn)制文件...適合集成到基于Spring的應(yīng)用程序中,開放API,用于任何JCE提供程序...添加如下依賴:com.github.ulisesbocchiojasypt-spring-boot-starter2.1.1Jasypt好處保護(hù)我們的系統(tǒng)安全,即使代碼泄露,也可以保證數(shù)據(jù)源的

怎么在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖 怎么在SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖 Jun 03, 2023 am 08:16 AM

一、Redis實(shí)現(xiàn)分布式鎖原理為什么需要分布式鎖在聊分布式鎖之前,有必要先解釋一下,為什么需要分布式鎖。與分布式鎖相對就的是單機(jī)鎖,我們在寫多線程程序時,避免同時操作一個共享變量產(chǎn)生數(shù)據(jù)問題,通常會使用一把鎖來互斥以保證共享變量的正確性,其使用范圍是在同一個進(jìn)程中。如果換做是多個進(jìn)程,需要同時操作一個共享資源,如何互斥呢?現(xiàn)在的業(yè)務(wù)應(yīng)用通常是微服務(wù)架構(gòu),這也意味著一個應(yīng)用會部署多個進(jìn)程,多個進(jìn)程如果需要修改MySQL中的同一行記錄,為了避免操作亂序?qū)е屡K數(shù)據(jù),此時就需要引入分布式鎖了。想要實(shí)現(xiàn)分

SpringBoot怎么自定義Redis實(shí)現(xiàn)緩存序列化 SpringBoot怎么自定義Redis實(shí)現(xiàn)緩存序列化 Jun 03, 2023 am 11:32 AM

1、自定義RedisTemplate1.1、RedisAPI默認(rèn)序列化機(jī)制基于API的Redis緩存實(shí)現(xiàn)是使用RedisTemplate模板進(jìn)行數(shù)據(jù)緩存操作的,這里打開RedisTemplate類,查看該類的源碼信息publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations,BeanClassLoaderAware{//聲明了key、value的各種序列化方式,初始值為空@NullableprivateRedisSe

springboot讀取文件打成jar包后訪問不到怎么解決 springboot讀取文件打成jar包后訪問不到怎么解決 Jun 03, 2023 pm 04:38 PM

springboot讀取文件,打成jar包后訪問不到最新開發(fā)出現(xiàn)一種情況,springboot打成jar包后讀取不到文件,原因是打包之后,文件的虛擬路徑是無效的,只能通過流去讀取。文件在resources下publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

SpringBoot怎么集成Redisson實(shí)現(xiàn)延遲隊(duì)列 SpringBoot怎么集成Redisson實(shí)現(xiàn)延遲隊(duì)列 May 30, 2023 pm 02:40 PM

使用場景1、下單成功,30分鐘未支付。支付超時,自動取消訂單2、訂單簽收,簽收后7天未進(jìn)行評價。訂單超時未評價,系統(tǒng)默認(rèn)好評3、下單成功,商家5分鐘未接單,訂單取消4、配送超時,推送短信提醒……對于延時比較長的場景、實(shí)時性不高的場景,我們可以采用任務(wù)調(diào)度的方式定時輪詢處理。如:xxl-job今天我們采

Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加怎么實(shí)現(xiàn) Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加怎么實(shí)現(xiàn) Jun 02, 2023 am 11:07 AM

在Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加操作我所遇到的問題準(zhǔn)備工作在測試環(huán)境下模擬思維分解一下:創(chuàng)建出一個帶有參數(shù)的BrandDTO對象模擬對后臺傳遞參數(shù)我所遇到的問題我們都知道,在我們使用Mybatis-plus中進(jìn)行多表操作是極其困難的,如果你不使用Mybatis-plus-join這一類的工具,你只能去配置對應(yīng)的Mapper.xml文件,配置又臭又長的ResultMap,然后再去寫對應(yīng)的sql語句,這種方法雖然看上去很麻煩,但具有很高的靈活性,可以讓我們

SpringBoot與SpringMVC的比較及差別分析 SpringBoot與SpringMVC的比較及差別分析 Dec 29, 2023 am 11:02 AM

SpringBoot和SpringMVC都是Java開發(fā)中常用的框架,但它們之間有一些明顯的差異。本文將探究這兩個框架的特點(diǎn)和用途,并對它們的差異進(jìn)行比較。首先,我們來了解一下SpringBoot。SpringBoot是由Pivotal團(tuán)隊(duì)開發(fā)的,它旨在簡化基于Spring框架的應(yīng)用程序的創(chuàng)建和部署。它提供了一種快速、輕量級的方式來構(gòu)建獨(dú)立的、可執(zhí)行

SpringBoot中的@Import注解怎么使用 SpringBoot中的@Import注解怎么使用 May 31, 2023 pm 06:25 PM

一、@Import引入普通類@Import引入普通的類可以幫助我們把普通的類定義為Bean。@Import可以添加在@SpringBootApplication(啟動類)、@Configuration(配置類)、@Component(組件類)對應(yīng)的類上。注意:@RestController、@Service、@Repository都屬于@Component@SpringBootApplication@Import(ImportBean.class)//通過@Import注解把ImportBean

See all articles