Spring中基于Java的配置@Configuration和@Bean用法详解

网友投稿 301 2023-01-03


Spring中基于Java的配置@Configuration和@Bean用法详解

一、首先,需要xml中进行少量的配置来启动java配置:

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

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

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

xsi:schemaLocation="

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

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

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

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

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

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

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

xsi:schemaLocation="

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

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

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

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

二、定义一个配置类

用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean。

代码如下:

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:

package SpringStudy.Model;

public class Counter {

public Counter() {

}

publhttp://ic 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类

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() {

rethttp://urn sound;

}

public void setSound(String sound) {

this.sound = sound;

}

}

四、调用测试类

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中的内容

ApplicationContext annotationContext = new AnnotationConfigApplicationContext("SpringStudy");

Counter c = annotationContext.getBean("counter", Counter.class);// 创建bean的引用对象

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

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

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

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

}

}

注意:如果是在xml中配置beans和bean的话,或者使用自动扫描调用的话,代码为

ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/bean.xml");// 读取bean.xml中的内容

Counter c = ctx.getBean("counter", Counter.class);// 创建bean的引用对象

五、运行结果

12.0

false

Shake it Off

Piano

---------------------


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:绩效考核系统接口设计(绩效考核体系设计)
下一篇:常见接口测试工具有哪些(常见接口测试工具有哪些种类)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~