spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置。
一、首先,需要xml中进行少量的配置来启动Java配置:
-
<?xmlversion="1.0"encoding="UTF-8"?>
-
<beansxmlns="http://www.springframework.org/schema/beans"
-
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:
-
http:
-
http:
-
http:
-
<context:component-scanbase-package="SpringStudy.Model">
-
</context:component-scan>
-
</beans>
二、定义一个配置类
用@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
-
publicPianopiano(){
-
returnnewPiano();
-
}
-
@Bean(name="counter")
-
publicCountercounter(){
-
returnnewCounter(12,"ShakeitOff",piano());
-
}
-
}
三、基础类代码
Counter:
-
packageSpringStudy.Model;
-
-
publicclassCounter{
-
publicCounter(){
-
}
-
-
publicCounter(doublemultiplier,Stringsong,Instrumentinstrument){
-
this.multiplier=multiplier;
-
this.song=song;
-
this.instrument=instrument;
-
}
-
-
privatedoublemultiplier;
-
-
privateStringsong;
-
-
@Resource
-
privateInstrumentinstrument;
-
-
publicdoublegetMultiplier(){
-
returnmultiplier;
-
}
-
-
publicvoidsetMultiplier(doublemultiplier){
-
this.multiplier=multiplier;
-
}
-
-
-
publicStringgetSong(){
-
returnsong;
-
}
-
-
publicvoidsetSong(Stringsong){
-
this.song=song;
-
}
-
-
publicInstrumentgetInstrument(){
-
returninstrument;
-
}
-
-
publicvoidsetInstrument(Instrumentinstrument){
-
this.instrument=instrument;
-
}
-
-
}
Piano类
-
packageSpringStudy.Model;
-
-
-
publicclassPiano{
-
privateStringname="Piano";
-
privateStringsound;
-
-
publicStringgetName(){
-
returnname;
-
}
-
-
publicvoidsetName(Stringname){
-
this.name=name;
-
}
-
-
publicStringgetSound(){
-
returnsound;
-
}
-
-
publicvoidsetSound(Stringsound){
-
this.sound=sound;
-
}
-
-
}
四、调用测试类
-
packagewebMyBatis;
-
-
importorg.springframework.context.ApplicationContext;
-
importorg.springframework.context.annotation.AnnotationConfigApplicationContext;
-
importSpringStudy.Model.Counter;
-
-
publicclassSpringTest{
-
publicstaticvoidmain(String[]args){
-
-
ApplicationContextannotationContext=newAnnotationConfigApplicationContext("SpringStudy");
-
Counterc=annotationContext.getBean("counter",Counter.class);
-
System.out.println(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
分享到:
相关推荐
`@Configuration`和`@Bean`注解使得我们可以直接在Java类中编写配置,避免了XML文件的繁琐。这种方式不仅提高了可读性,也使得集成测试变得更加方便,因为可以直接注入配置类而不是XML配置文件。通过熟练掌握这两个...
### @Configuration 和 @Bean 的用法与理解 ...在实际开发过程中,了解和掌握这些注解的使用方法是非常必要的,这不仅能帮助我们更好地构建Spring应用,也能让我们更加深入地理解Spring框架的工作原理。
基于Java类的配置Bean是Spring实现IOC的一种方式,与XML配置相比,提供了更灵活和类型安全的选项。 在Spring中,我们可以通过编写Java类来定义Bean的配置,这种配置方式通常被称为JavaConfig。这种方式的优点在于...
在 Spring Boot 中,我们使用 `@Bean` 注解来声明一个方法将返回一个 Spring 管理的 bean。例如,创建一个简单的 `HelloService`: ```java @Configuration public class AppConfig { @Bean public HelloService...
本文将深入探讨Spring Boot基于Java的容器配置,通过示例代码帮助理解其工作原理和使用方法。 首先,Spring容器是Spring框架的核心,它负责管理对象的生命周期,包括创建、初始化、装配和销毁。Spring提供了多种...
在Spring框架中,Bean的配置方式主要有两种:XML配置和基于Java的配置。本文将深入探讨"使用java类配置Bean"这一主题,特别是在SIA实战项目中的应用。 首先,让我们理解Spring框架的核心概念——Bean。在Spring中,...
Spring 基于 Java 的容器配置是 Spring 框架中一种现代化的配置方式,它引入了 `@Configuration` 和 `@Bean` 注解,替代传统的 XML 配置。这种方式使得配置更加简洁、直观,同时也更易于集成到 Java 代码中。 `@...
1. 配置第三方框架:在 Spring Boot 项目中,我们可以使用 @Configuration 和 @Bean 注解来配置第三方框架,例如 Shiro 框架。 2. 注册 Bean:我们可以使用 @Bean 注解来注册 Bean 到 Spring 容器中,以便其他组件...
传统的Spring配置是通过XML文件进行的,但随着Spring的发展,基于Java的配置(@Configuration和@Bean注解)逐渐成为主流。 1. **基于Java的配置类**:在Spring中,你可以创建一个带有@Configuration注解的类,这个...
在实际开发中,Spring Boot社区推荐使用基于JavaConfig的配置形式,即使用@Configuration注解标注的配置类。这种配置形式可以替换传统的XML配置文件,更加灵活和方便。 六、小结 本文通过对@Configuration注解和...
在Spring框架中,我们可以使用@Configuration注解来配置Bean的初始化和销毁。例如: ```java @Configuration @ComponentScan("com.wisely.highlight_spring4.ch2.prepost") public class PrePostConfig { @Bean...
- **通过`@Configuration`和`@ComponentScan`**:Spring 3.0引入了基于Java的配置,允许在Java类中定义Bean并扫描特定包下的组件。 - **使用`Prototype`作用域的Bean**:如果一个Bean是Prototype作用域,每次请求...
`@Configuration`类表示这是一个配置类,`@Bean`注解方法表示该方法的返回值将作为一个Bean注册到Spring容器。 ```java @Configuration public class AppConfig { @Bean public HelloWorldService ...
Spring @Bean 注解配置及使用方法解析 @Bean 注解是 Spring 框架中用于生成 Bean 实例的注解,主要用在方法上,声明当前方法体中包含了最终产生 Bean 实例的逻辑。该注解可以与 @Component 或 @Configuration 一起...
@Configuration 和 @Bean 注解是 Spring 中非常重要的部分,它们提供了声明式配置的能力,使得我们可以用 Java 代码替代 XML 配置来管理 Bean。通过这种方式,我们可以更灵活地控制 Bean 的创建、初始化和装配,同时...
在Spring Boot框架中,`@Configuration`注解是核心组件之一,它用于标记一个类作为配置类,使得我们可以使用Java配置来替代XML配置。在这个"自定义@Configuration配置类启用开关.zip"项目中,我们很显然会看到如何...
通过以上介绍,我们已经了解了Spring框架中基于注解配置的基本用法。这种方式让我们的代码更易读、更少的XML配置,提高了开发效率。在实际项目中,我们还可以结合Spring Boot和其他Spring生态的注解,如Spring Data ...
在Spring配置中,我们可以通过`@Configuration`和`@Bean`进一步定制Bean的创建和装配过程,与`@Autowired`和`@Resource`配合使用,实现更加灵活的依赖注入。 总之,`@Autowired`和`@Resource`都是Spring框架中的...
Spring框架是Java开发中广泛应用的一个轻量级框架,它的核心特性包括依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect Oriented Programming,简称AOP)。在Spring 4.0之后,为了提供更加现代化的...
此外,Bean的初始化和销毁方法可以使用`init-method`和`destroy-method`属性(在XML中)或`@PostConstruct`和`@PreDestroy`注解(在Java或注解配置中)来定义。这些方法会在Bean生命周期的特定时刻被调用。 最后,...