java bean配置文件_Bean Java配置

Spring 系列教程

前面介绍了Bean的XML配置方法,从Spring 3.0开始,可以使用java代码配置Bean,替代XML配置。

Java配置与注解配置不同,Java配置是把Java代码文件当作配置文件,注解配置是在实际Java类中使用注解设置依赖关系。

Java配置也会用到一些注解,主要有:@Configuration、@ComponentScan和@Bean。

1. 通过@Configuration注解创建Java配置类

@Configuration注解标注的类是配置类,用于配置Bean之间依赖关系。

@Import注解允许从另一个配置Java/XML文件加载bean定义。

示例:SpringConfig.java

package com.qikegu.demo.config;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.ComponentScan;

@Configuration // 表明这是个Bean的Java配置类

public class SpringConfig {

}

2. 通过@Bean注解定义Bean

要定义一个Bean,可以通过:

给一个方法加@Bean注解

方法返回Bean实例

Spring容器会注册这个Bean,并将方法名作为Bean ID。

示例:SpringConfig.java

package com.qikegu.demo.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class SpringConfig {

// 定义 App Bean

@Bean(initMethod = "init", destroyMethod = "close" ) // 指定初始化回调,销毁回调

@Scope("prototype") // 设置Bean作用域

public App app() { // Bean ID = app

return new App(); // 返回App Bean

}

}

3. 注入Bean依赖关系

可以通过让一个Bean方法调用另一个Bean方法注入依赖项。

示例:SpringConfig.java

package com.qikegu.demo.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration

public class SpringConfig {

// 定义 App Bean

@Bean

public App app() {

return new App(logger()); // 调用Bean方法logger()注入Logger Bean实例

}

/* @Bean

public App app() {

App app = new App();

Service[] services = {database(), logger(), mail()};

app.setServices(services);

app.setMainService(services[1]);

app.setId(1234);

return app;

} */

// 定义 Database Bean

@Bean

public Database database() {

return new Database();

}

// 定义 Logger Bean

@Bean

public Logger logger() {

return new Logger();

}

// 定义 Mail Bean

@Bean

public Mail mail() {

return new Mail();

}

}

4. 读取配置类

可以使用AnnotationConfigApplicationContext读取配置类。

示例:Test.java

package com.qikegu.demo.config;

import org.springframework.context.ApplicationContext;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Test {

public static void main(String[] args) {

// 使用`AnnotationConfigApplicationContext`读取配置类

ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

}

}

5. 通过Spring容器获取bean

示例:

App app = context.getBean("app", App.class);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值