欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JavaConfig代替xml實現Spring配置操作

 更新時間:2021年09月27日 11:18:54   作者:想飛的魚Stitch  
這篇文章主要介紹了使用JavaConfig代替xml實現Spring配置操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JavaConfig代替xml實現Spring配置

簡單實體類

package indi.stitch.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class User {
    private String name;
    public String getName() {
        return name;
    }
    @Value("Stitch")
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

@Component注解將實體類交給Spring容器托管,成為一個SpringBean組件

JavaConfig配置類

package indi.stitch.config;
import indi.stitch.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("indi.stitch.pojo")
public class BeanConfig {
    @Bean
    public User getUser() {
        return new User();
    }
}
  • @Configuration注解代表這個類為Bean的配置類,相當于xml配置文件,本質上也是一個Component
  • @ComponentScan注解限定了配置類的掃描范圍
  • @Bean表示被注冊的Bean,相當于xml配置文件中的bean標簽

測試類

import indi.stitch.config.BeanConfig;
import indi.stitch.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig.class);
        User user = context.getBean("getUser", User.class);
        System.out.println(user.getName());
    }
}

使用JavaConfig的方式實現配置,需要使用AnnotationConfigApplicationContext類通過傳入配置類的字節(jié)碼對象獲取Spring配置上下文,在此上下文中可以獲取被@Bean標簽標記的Bean對象,傳入的參數為被@Bean標簽標記的方法的方法名。

測試結果

在這里插入圖片描述

脫離xml用JavaConfig配置Spring

情況一

配置類中類名添加 @Configuration 注解,同時提供一個方法返回一個Bean實例,且這個方法添加注解 @Bean ,就可以由Spring管理此對象

如下所示:

User.java( Bean )

public class User {
    private String name;
    public String getName() {
        return name;
    }
    @Value("Juyss") //注入name屬性的值
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

SpringConfig.java( Java配置類 )

@Configuration //表明此類為Spring配置類
public class SpringConfig {
    @Bean //返回一個實例,注冊為一個Bean由Spring管理
    public User getUser(){
        return new User();
    }
}

ConfTest.java(測試類)

public class ConfTest {
    @Test
    public void Test(){
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        User user = context.getBean("getUser", User.class); //第一個參數需與方法名一致
        System.out.println(user);
    }
}

測試類運行結果得到:

User{name='Juyss'}

情況二

配置類中類名上添加注解@Configuration表明為Spring配置類,添加注解@ComponentScan("ClassPath")表明掃描的包路徑

然后在需要被Spring管理的Bean類名添加注解@Component

User.java ( Bean )

@Component //表明這個類注冊為Bean組件
public class User {
    private String name;
    public String getName() {
        return name;
    }
    @Value("Juyss") //注入name屬性的值
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

SpringConfig.java ( Java配置類 )

@Configuration //表明為Spring配置類
@ComponentScan("com.juyss.pojo") //掃描此包下的所有已注冊的Bean
public class SpringConfig {
}
ConfTest.java ( 測試類 )
public class ConfTest {
    @Test
    public void Test(){
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        User user = context.getBean("user", User.class); //第一個參數為類名首字母小寫
        System.out.println(user);
    }
}

測試類運行結果得到:

User{name='Juyss'}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java并發(fā)Timer源碼分析

    Java并發(fā)Timer源碼分析

    這篇文章講述了java并發(fā)編程的相關知識點,并通過Timer源碼分析更深入的講解了java并發(fā)編程。
    2018-07-07
  • java驗證碼生成的基本流程

    java驗證碼生成的基本流程

    這篇文章主要介紹了java驗證碼生成的基本流程,需要的朋友可以參考下
    2015-11-11
  • Java獲取項目路徑方式System.getProperty(“user.dir“)

    Java獲取項目路徑方式System.getProperty(“user.dir“)

    這篇文章主要介紹了Java獲取項目路徑方式System.getProperty(“user.dir“),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringBoot整合MOTT動態(tài)讀取數據庫連接信息并連接MQTT服務端

    SpringBoot整合MOTT動態(tài)讀取數據庫連接信息并連接MQTT服務端

    MQTT是一種輕量級的消息傳輸協(xié)議(Message Queuing Telemetry Transport),旨在實現設備之間的低帶寬和高延遲的通信,本文給大家介紹了SpringBoot整合MOTT動態(tài)讀取數據庫連接信息并連接MQTT服務端,需要的朋友可以參考下
    2024-04-04
  • 帶你3分鐘帶你搞定Spring Boot中Schedule

    帶你3分鐘帶你搞定Spring Boot中Schedule

    本文主要圍繞Spring scheduled應用實踐進行分享,如果是單體應用,使用SpringBoot內置的@scheduled注解可以解決大部分業(yè)務需求,對Spring Boot中Schedule 相關知識感興趣的朋友一起看看吧
    2024-07-07
  • MyBatis?Generator生成的$?sql是否存在注入風險詳解

    MyBatis?Generator生成的$?sql是否存在注入風險詳解

    這篇文章主要介紹了MyBatis?Generator生成的$?sql是否存在注入風險詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • IDEA在創(chuàng)建包時如何把包分開實現自動分層(方法詳解)

    IDEA在創(chuàng)建包時如何把包分開實現自動分層(方法詳解)

    這篇文章主要介紹了IDEA在創(chuàng)建包時如何把包分開實現自動分層,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • mybaties plus實體類設置typeHandler不生效的解決

    mybaties plus實體類設置typeHandler不生效的解決

    這篇文章主要介紹了mybaties plus實體類設置typeHandler不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • SpringBoot在自定義類中調用service層等Spring其他層操作

    SpringBoot在自定義類中調用service層等Spring其他層操作

    這篇文章主要介紹了SpringBoot在自定義類中調用service層等Spring其他層操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot整合RocketMQ的詳細過程

    SpringBoot整合RocketMQ的詳細過程

    這篇文章主要介紹了SpringBoot整合RocketMQ的詳細過程,本文分為三部分,第一部分實現SpringBoot與RocketMQ的整合,第二部分解決在使用RocketMQ過程中可能遇到的一些問題并解決他們,第三部分介紹如何封裝RocketMQ以便更好地使用,需要的朋友可以參考下
    2023-04-04

最新評論