最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot定義Bean的幾種實現(xiàn)方式

 更新時間:2023年05月22日 14:32:35   作者:ACGkaka_  
本文主要介紹了SpringBoot定義Bean的幾種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.@Bean

@Bean
public DemoService demoService() {
    return new DemoService();
}

2.@Component

@Component
public class DemoService {
}

3.@Controller、@RestController、@Service、@Repository

@RestController
public class DemoController{
    @GetMapping("/test")
    public String test() {
        return "succeed";
    }
}

4.@ControllerAdvice、@RestControllerAdvice

import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
/**
?* <p> @Title DemoControllerAdvice
?* <p> @Description Controller增強
?*
?* @author ACGkaka
?* @date 2023/4/25 21:07
?*/
@ControllerAdvice
public class DemoControllerAdvice implements ResponseBodyAdvice {
? ? @Override
? ? public boolean supports(MethodParameter methodParameter, Class aClass) {
? ? ? ? return true;
? ? }
? ? @Override
? ? public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
? ? ? ? System.out.println("body is: " + body);
? ? ? ? return body;
? ? }
}

注意:@ControllerAdvice相當于對于Controller的切面,可以綁定PropertyEditor。

(類似于AOP,但是底層不是AOP實現(xiàn)。)

5.@Configuration

@Configuration
public class DemoConfig {
}

注意:@Configuration 主要標識一個Bean是一個配置Bean,利用這個Bean可以對Spring進行配置,比如掃描路徑、定義其他的Bean。

6.@Import

@SpringBootAppilcation
@Import(Demo.class)
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class);
    }
}

7.BeanDefinition

這是我們其他所有方法的底層實現(xiàn)。

MyApplication.java

@SpringBootApplication
@Import(DemoImportBeanDefinitionRegistrar.class)
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class);
    }
}

DemoImportBeanDefinitionRegistrar.java

import com.demo.service.DemoService;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;
/**
?* <p> @Title DemoImportBeanDefinationRegistar
?* <p> @Description @Import注解的實現(xiàn)類
?*
?* @author ACGkaka
?* @date 2023/4/25 21:18
?*/
public class DemoImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
? ? @Override
? ? public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) {
? ? ? ? AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
? ? ? ? // 定義Bean
? ? ? ? beanDefinition.setBeanClass(DemoService.class);
? ? ? ? // 注冊Bean
? ? ? ? registry.registerBeanDefinition("demoService", beanDefinition);
? ? }
}

8.<bean />

最古老的方式

@SpringBootApplication
@ImportResource("classpath:spring.xml")
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class);
    }
}

spring.xml

<?xml version="1.0" encoding="UTF-7"?>
<beans xmlns="http://www.springframework.org/schema/beans"
? ? ? ?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? ? ? ?xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
?? ?<bean id="demoService" class="com.demo.service.DemoService" />
</beans>

參考地址:

1.【最新最全】一周刷完Java面試八股文的變態(tài)方法

到此這篇關于SpringBoot定義Bean的幾種實現(xiàn)方式的文章就介紹到這了,更多相關SpringBoot定義Bean內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解MyBatis的Dao層實現(xiàn)和配置文件深入

    詳解MyBatis的Dao層實現(xiàn)和配置文件深入

    這篇文章主要為大家詳細介紹了MyBatis的Dao層實現(xiàn)和配置文件深入,文中的示例代碼講解詳細,感興趣的小伙伴快來跟隨小編一起學習一下
    2022-07-07
  • SpringBoot跨域Jsonp和Cors的方法

    SpringBoot跨域Jsonp和Cors的方法

    這篇文章主要介紹了SpringBoot跨域Jsonp和Cors的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Spring Boot 2.X快速整合jpa過程解析

    Spring Boot 2.X快速整合jpa過程解析

    這篇文章主要介紹了Spring Boot 2.X 如何快速整合jpa?,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Spring事務管理@Transactional注解最佳實踐

    Spring事務管理@Transactional注解最佳實踐

    本文詳細介紹了Spring框架的核心特性,包括IOC容器、AOP面向切面編程和事務管理,重點解析了Spring事務的傳播行為和隔離級別,以及SpringBoot的自動配置原理,本文給大家講解的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • 統(tǒng)信UOS安裝及刪除JDK的完整步驟記錄

    統(tǒng)信UOS安裝及刪除JDK的完整步驟記錄

    OpenJDK是Java開發(fā)工具的開源實現(xiàn),包括Java運行時環(huán)境(JRE)和Java開發(fā)工具集(JDK),這篇文章主要介紹了統(tǒng)信UOS安裝及刪除JDK的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-08-08
  • Springboot整合Mybatis和SQLite的詳細過程

    Springboot整合Mybatis和SQLite的詳細過程

    這篇文章主要介紹了Springboot整合Mybatis和SQLite的詳細過程,本文通過圖文示例相結合給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 基于javaMybatis存進時間戳的問題

    基于javaMybatis存進時間戳的問題

    這篇文章主要介紹了javaMybatis存進時間戳的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Netty實現(xiàn)自定義協(xié)議編解碼器

    Netty實現(xiàn)自定義協(xié)議編解碼器

    這篇文章主要為大家介紹了Netty實現(xiàn)自定義協(xié)議編解碼器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • springboot頁面國際化配置指南

    springboot頁面國際化配置指南

    聽起來高大上的國際化,起始就是在利用瀏覽器語言,或者頁面中的中英文切換,將頁面的文字在其他語言和中文進行切換,這篇文章主要給大家介紹了關于springboot頁面國際化配置的相關資料,需要的朋友可以參考下
    2022-03-03
  • java 對稱加密算法實現(xiàn)詳解

    java 對稱加密算法實現(xiàn)詳解

    這篇文章主要介紹了java 對稱加密算法實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論

华容县| 天津市| 太和县| 津南区| 察哈| 前郭尔| 宝坻区| 汪清县| 本溪市| 上虞市| 富蕴县| 蒙山县| 正安县| 定远县| 当涂县| 灵台县| 高密市| 太保市| 龙泉市| 麻栗坡县| 绥滨县| 潮安县| 西藏| 济南市| 长沙市| 皮山县| 德惠市| 西昌市| 开远市| 子长县| 务川| 商水县| 雷山县| 江津市| 米易县| 五台县| 武清区| 秭归县| 沁阳市| 扎赉特旗| 山阴县|