Spring---Java配置管理(Annotation)

本文介绍了Java配置管理的基础概念,包括常用注解如@Configuration、@Bean、@Value等的作用及使用方式,并通过具体示例展示了如何利用这些注解进行依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java配置管理

Java配置类,常用的注解(Annotation):

@Configuration:用于修饰一个Java配置类
@Bean:修饰一个方法,返回值定义成容器的一个Bean
@Value:修饰一个Field,用于为该Field(域)配置一个值
@Import:修饰一个Java配置类,用于向当前配置类导入其他Java配置类
@Scope:修饰一个方法,指定该方法对应的Bean生命域
@Lazy:修饰一个方法。指定该方法对应的Bean是否需要延迟初始化
@DependsOn:修饰一个方法,在初始化该方法对应的Bean执勤啊初始化指定的Bean

Annotation的出现是为了简化Spring的XML配置文件,但Annotation不如XML强大,所以无法完全取代XMl文件。

实例:

package gzy;
import interfaces.Person;

public class Chinese implements Person{
    private Sports sports;
    private String name;
    public void setSports(Sports sports){
        this.sports=sports;
    }
    public void setName(String name){
        this.name=name;
    }
    public void useDo(){
        System.out.println("I am "+name+",and I'm "+sports.doing());
    }
}
package gzy;
public class Sports {
    public String doing(){
        return "swimming!";
    }
}

Java配置文件:

package gzy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import interfaces.Person;

@Configuration
public class AppConfig {
    @Value("hhh")String personName;
    @Bean(name="chinese")
    public Person person(){
        Chinese p=new Chinese();
        p.setSports(new Sports() );
        p.setName(personName);
        return p;
    }
}
package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import gzy.Chinese;

public class SpringTest {
    public static void main(String[]args){
        ApplicationContext ctx=
                new AnnotationConfigApplicationContext(gzy.AppConfig.class);
        Chinese c=ctx.getBean(Chinese.class);
        c.useDo();
    }
}

Output:
I am hhh,and I'm swimming!

在实际的项目中可能会混合使用XMl配置和Java类配置,
(1)以XML为主,Java类配置为辅:
<bean class="*.AppConfig"/>
(2)以Java类配置为主,XML为辅:

@Configuration
@ImportResource("classpath:/beans.xml")
public class Config{
    ····
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值