Spring中基于java的配置
2024-10-21 15:38:14
Spring中为了减少XML配置,可以声明一个配置类类对bean进行配置,主要用到两个注解@Configuration和@bean
例子:
- 首先,XML中进行少量的配置来启动java配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<context:component-scan base-package="com.demo.config"/>
</beans>
- 定义一个配置类,用@Configuration注解该类,等价于XML里的<beans>,用@Bean注解方法,等价于XML配置的<bean>,方法名等于beanId。代码如下:
@Configuration
public class SpringConfig {
@Bean
public Service service(){
return new Service();
}
@Bean
public Client client(){
return new Client();
}
}
- 其他Bean代码:
public class Service {
public String sayHello(){
return "HelloWord!";
}
}
public class Client {
@Autowired
Service service;
public void invokeService(){
System.out.println("client invoke :" + service.sayHello());
}
}
- 测试类
public class Test { public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
Client client = context.getBean("client",Client.class);
client.invokeService();
}
}
加载XML中配置的beans和bean用:
ApplicationContext ctx = new ClassPathXmlApplicationContext("config/bean.xml");// 读取bean.xml中的内容
Counter c = ctx.getBean("client", Client.class);// 创建bean的引用对象
- 运行结果
- 写在最后
SpringBean的创建和注入有三种,XML、注解、java配置文件。
因为XML配置较为繁琐,现在大部分开始用注解和java配置,一般什么时候用注解或者java配置呢?
基本原则是:全局配置用java配置(如数据库配置,MVC,redis等相关配置),业务Bean的配置用注解(@Service @Component@Repository@Controlle)。
最新文章
- json的理解及读取
- iOS开发使用半透明模糊效果方法整理
- 转载--tomcat整合apr
- 关于Java中的程序,进程和线程的详解...
- 3732 Ahui Writes Word
- 现代程序设计——homework-02
- SQLite入门与分析(八)---存储模型(3)
- 线段树(维护最大值):HDU Billboard
- js实现鼠标拖拽div-------Day44
- kettle表输入条件参数设置
- [Python Study Notes]内存信息
- App自动更新(DownloadManager下载器)
- 阅读<;Video Timing Controller>;笔记
- VMware ESXI6.0服务器安装
- react 学习日记
- tensorflow变量作用域(variable scope)
- 04 Effective Go 高效的go语言 重点内容
- SQLServer系统变量使用
- nohup和&;后台运行,进程查看及终止 详解
- apache phoenix 安装试用
热门文章
- java集合之 ConcurrentHashMap的产生
- Linux等操作系统杂谈
- _proto_和prototype的区别
- Chrome之谷歌插件开发
- iPhone屏幕适配,历史及现状(http://hjcapple.github.io/2014/10/10/iphone-screen.html)
- host.conf - 解析配置文件
- 【TensorFlow探索之一】MNIST的初步尝试
- 设备中LPC2368芯片个例参数问题导致故障的分析
- Linux--磁盘管理--04
- Hive的架构(二)