注解:
@Configuration:用来标注当前类是一个配置类(等价于配置文件)
@Bean:给容器中注册一个组件,bean 类型就是方法的返回值类型,id 默认是方法名
一、配置文件开发
在没有使用注解开发时,每一个工程都需要配置一个 Spring 的配置文件。
在配置文件中使用 <bean>
标签类给容器中注册添加 bean 对象。

然后就可以根据配置文件来获取容器即获取容器中的 bean 对象。
public static void main(String[] args) {
//配置文件方式
ApplicationContext ioc = new ClassPathXmlApplicationContext("beans.xml");
Person person = (Person) ioc.getBean("person");
System.out.println("person = " + person);
}
二、注解开发
@Configuration:用来标注当前类是一个配置类(等价于配置文件)
@Bean:给容器中注册一个组件,bean 类型就是方法的返回值类型,id 默认是方法名;
声明如下的配置类:
//配置类==配置文件, @Configuration 告诉 Spring 是一个配置类
@Configuration
public class MainConfig {
/**
* 使用 @Bean 注册一个 bean 组件,bean 类型是返回值的类型,id 默认是方法名即(person)
* 修改 id 名
* 1)修改方法名;
* 2)注解中 value 值即 bean 的 id
* @return
*/
@Bean(name = "Person")
public Person person01() {
return new Person("李四", 20);
}
}
根据注解配置获取 bean 组件:
public static void main(String[] args) {
//配置文件方式
ApplicationContext ioc = new ClassPathXmlApplicationContext("beans.xml");
Person person = (Person) ioc.getBean("person");
System.out.println("person = " + person);
//注解方式
ApplicationContext ioc2 = new AnnotationConfigApplicationContext(MainConfig.class);
Person bean = ioc2.getBean(Person.class);
System.out.println("bean = " + bean);
//根据类型获取容器中所有组件的名称
String[] names1 = ioc2.getBeanNamesForType(Person.class);
for (String s : names1) {
System.out.println("s = " + s); //获取类型的名字(ID)
}
//获取容器中所有组件的定义名称
String[] names2 = ioc2.getBeanDefinitionNames();
for (String name : names2) {
System.out.println("name = " + name);
}
}
分类:
Spring注解驱动
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2019-11-12 Float型 与 Double型数据的存储方式