脱离xml使用JavaConfig实现Spring配置
2024-09-06 09:46:30
总结
情况一:
配置类中类名添加 @Configuration
注解,同时提供一个方法返回一个Bean实例,且这个方法添加注解 @Bean
,就可以由Spring管理此对象
如下所示:
User.java( Bean )
public class User {
private String name;
public String getName() {
return name;
}
@Value("Juyss") //注入name属性的值
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
SpringConfig.java( Java配置类 )
@Configuration //表明此类为Spring配置类
public class SpringConfig {
@Bean //返回一个实例,注册为一个Bean由Spring管理
public User getUser(){
return new User();
}
}
ConfTest.java(测试类)
public class ConfTest {
@Test
public void Test(){
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
User user = context.getBean("getUser", User.class); //第一个参数需与方法名一致
System.out.println(user);
}
}
测试类运行结果得到:User{name='Juyss'}
情况二:
配置类中类名上添加注解@Configuration
表明为Spring配置类,添加注解@ComponentScan("ClassPath")
表明扫描的包路径
然后在需要被Spring管理的Bean类名添加注解@Component
User.java ( Bean )
@Component //表明这个类注册为Bean组件
public class User {
private String name;
public String getName() {
return name;
}
@Value("Juyss") //注入name属性的值
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
SpringConfig.java ( Java配置类 )
@Configuration //表明为Spring配置类
@ComponentScan("com.juyss.pojo") //扫描此包下的所有已注册的Bean
public class SpringConfig {
}
ConfTest.java ( 测试类 )
public class ConfTest {
@Test
public void Test(){
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
User user = context.getBean("user", User.class); //第一个参数为类名首字母小写
System.out.println(user);
}
}
测试类运行结果得到:User{name='Juyss'}
最新文章
- Linux 系统查看物理内存使用率的命令脚本,以百分比形式输出。
- 强大的Sublime编辑器
- 对话框AlertDialog的基本类型与创建
- hdu 3530 Subsequence
- Delphi DecodeDate和EncodeDate 拆分和聚合时间函数的用法
- hdu 1325 Is It A Tree?
- Insert Interval 面试题leetcode.
- (转)iOS7界面设计规范(10) - UI基础 - 文字排版与配色
- javascript 浏览器
- bzoj 4444: [Scoi2015]国旗计划
- 杭电OJ2004——成绩转换
- SpringCloud的Hystrix(一) 一个消费者内的两个服务监控
- TCP浅谈为什么3次握手
- 使用Laya引擎开发微信小游戏(下)
- Java实验-课程设计报告一:个人银行账户管理系统SavingAccountManageSystem-具体文档+源码
- Eclipse中tomcat更改部署路径 deply path
- Centos7 开机启动命令行模式
- Nexus Repository Manager 3(CVE-2019-7238) 远程代码执行漏洞分析和复现
- 【MongoDB】MongoDB的安装教程
- Android 通过触摸动态地在屏幕上画矩形
热门文章
- ECMAScript 2016(ES7)新特性简介
- 归一化(Normalization)和标准化(Standardization)
- java例题_32 取一个整数a从右端开始的4~7位
- Java基础回顾_第二部分_Java流程控制
- 微信小程序授权登录以及用户信息相关接口调整导致授权框不弹出
- vuejs集成echarts的一些问题
- Dynamics CRM的Associate功能
- 【Azure 环境】在Windows系统中 使用Terraform创建中国区Azure资源步骤(入门级)
- day14.面向对象编程
- JDBC_13_封装JDBC工具类