日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中配置bean_Spring中基于Java的配置@Configuration和@Bean用法

發(fā)布時間:2025/3/20 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中配置bean_Spring中基于Java的配置@Configuration和@Bean用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring中為了減少xml中配置,可以聲明一個配置類(例如SpringConfig)來對bean進行配置。

一、首先,需要xml中進行少量的配置來啟動Java配置:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-3.2.xsd

http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

http://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context-3.2.xsd">

<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

二、定義一個配置類

用@Configuration注解該類,等價 與XML中配置beans;用@Bean標注方法等價于XML中配置bean。

代碼如下:

packageSpringStudy;

importorg.springframework.context.annotation.Bean;

importorg.springframework.context.annotation.Configuration;

importSpringStudy.Model.Counter;

importSpringStudy.Model.Piano;

@Configuration

publicclassSpringConfig?{

@Bean

publicPiano?piano(){

returnnewPiano();

}

@Bean(name?="counter")

publicCounter?counter(){

returnnewCounter(12,"Shake?it?Off",piano());

}

}package SpringStudy;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import SpringStudy.Model.Counter;

import SpringStudy.Model.Piano;

@Configuration

public class SpringConfig {

@Bean

public Piano piano(){

return new Piano();

}

@Bean(name = "counter")

public Counter counter(){

return new Counter(12,"Shake it Off",piano());

}

}三、基礎類代碼

Counter:

packageSpringStudy.Model;

publicclassCounter?{

publicCounter()?{

}

publicCounter(doublemultiplier,?String?song,Instrument?instrument)?{

this.multiplier?=?multiplier;

this.song?=?song;

this.instrument=instrument;

}

privatedoublemultiplier;

privateString?song;

@Resource

privateInstrument?instrument;

publicdoublegetMultiplier()?{

returnmultiplier;

}

publicvoidsetMultiplier(doublemultiplier)?{

this.multiplier?=?multiplier;

}

publicString?getSong()?{

returnsong;

}

publicvoidsetSong(String?song)?{

this.song?=?song;

}

publicInstrument?getInstrument()?{

returninstrument;

}

publicvoidsetInstrument(Instrument?instrument)?{

this.instrument?=?instrument;

}

}package SpringStudy.Model;

public class Counter {

public Counter() {

}

public Counter(double multiplier, String song,Instrument instrument) {

this.multiplier = multiplier;

this.song = song;

this.instrument=instrument;

}

private double multiplier;

private String song;

@Resource

private Instrument instrument;

public double getMultiplier() {

return multiplier;

}

public void setMultiplier(double multiplier) {

this.multiplier = multiplier;

}

public String getSong() {

return song;

}

public void setSong(String song) {

this.song = song;

}

public Instrument getInstrument() {

return instrument;

}

public void setInstrument(Instrument instrument) {

this.instrument = instrument;

}

}

Piano類

packageSpringStudy.Model;

publicclassPiano?{

privateString?name="Piano";

privateString?sound;

publicString?getName()?{

returnname;

}

publicvoidsetName(String?name)?{

this.name?=?name;

}

publicString?getSound()?{

returnsound;

}

publicvoidsetSound(String?sound)?{

this.sound?=?sound;

}

}package SpringStudy.Model;

public class Piano {

private String name="Piano";

private String sound;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSound() {

return sound;

}

public void setSound(String sound) {

this.sound = sound;

}

}

四、調(diào)用測試類

packagewebMyBatis;

importorg.springframework.context.ApplicationContext;

importorg.springframework.context.annotation.AnnotationConfigApplicationContext;

importSpringStudy.Model.Counter;

publicclassSpringTest?{

publicstaticvoidmain(String[]?args)?{

//ApplicationContext?ctx?=?new?ClassPathXmlApplicationContext("spring/bean.xml");//?讀取bean.xml中的內(nèi)容

ApplicationContext?annotationContext?=?newAnnotationConfigApplicationContext("SpringStudy");

Counter?c?=?annotationContext.getBean("counter",?Counter.class);//?創(chuàng)建bean的引用對象

System.out.println(c.getMultiplier());

System.out.println(c.isEquals());

System.out.println(c.getSong());

System.out.println(c.getInstrument().getName());

}

}package webMyBatis;

import org.springframework.context.ApplicationContext;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import SpringStudy.Model.Counter;

public class SpringTest {

public static void main(String[] args) {

//ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 讀取bean.xml中的內(nèi)容

ApplicationContext annotationContext = new AnnotationConfigApplicationContext("SpringStudy");

Counter c = annotationContext.getBean("counter", Counter.class);// 創(chuàng)建bean的引用對象

System.out.println(c.getMultiplier());

System.out.println(c.isEquals());

System.out.println(c.getSong());

System.out.println(c.getInstrument().getName());

}

}

注意:如果是在xml中配置beans和bean的話,或者使用自動掃描調(diào)用的話,代碼為

ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 讀取bean.xml中的內(nèi)容

Counter c = ctx.getBean("counter", Counter.class);// 創(chuàng)建bean的引用對象

五、運行結果

12.0

false

Shake it Off

Piano

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java中配置bean_Spring中基于Java的配置@Configuration和@Bean用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。