【Spring】IOC样例
时间:2021-09-04
本文章向大家介绍【Spring】IOC样例,主要包括【Spring】IOC样例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、注解方式
@Configuration
@ComponentScan("com.baeldung.constructordi"): perform a context scan for additional beans.
@Bean
1 @Configuration 2 @ComponentScan("com.baeldung.constructordi") 3 public class Config { 4 5 @Bean 6 public Engine engine() { 7 return new Engine("v8", 5); 8 } 9 10 @Bean 11 public Transmission transmission() { 12 return new Transmission("sliding"); 13 } 14 }
其他Bean定义,通过上述@ComponentScan扫描得到
1 @Component 2 public class Car { 3 4 @Autowired 5 public Car(Engine engine, Transmission transmission) { 6 this.engine = engine; 7 this.transmission = transmission; 8 } 9 }
使用:AnnotationConfigApplicationContext
Spring will encounter our Car class while doing a package scan, and will initialize its instance by calling the @Autowired annotated constructor.
By calling the @Bean annotated methods of the Config class, we will obtain instances of Engine and Transmission. Finally, we need to bootstrap an ApplicationContext using our POJO configuration:
1 ApplicationContext context = new AnnotationConfigApplicationContext(Config.class); 2 Car car = context.getBean(Car.class);
二、XML配置
定义构造器的XML Bean配置
<bean id="toyota" class="com.baeldung.constructordi.domain.Car"> <constructor-arg index="0" ref="engine"/> <constructor-arg index="1" ref="transmission"/> </bean> <bean id="engine" class="com.baeldung.constructordi.domain.Engine"> <constructor-arg index="0" value="v4"/> <constructor-arg index="1" value="2"/> </bean> <bean id="transmission" class="com.baeldung.constructordi.domain.Transmission"> <constructor-arg value="sliding"/> </bean>
使用ClassPathXmlApplicationContext
1 ApplicationContext context = new ClassPathXmlApplicationContext("baeldung.xml"); 2 Car car = context.getBean(Car.class);
原文地址:https://www.cnblogs.com/clarino/p/15227393.html
- 通过shell定制dbms_advisor.quick_tune(r4笔记第15天)
- 跨浏览器tab页的通信解决方案尝试
- 深度学习的GPU:深度学习中使用GPU的经验和建议
- socket.io搭配pm2(cluster)集群解决方案
- 用 Python 来刷微信「跳一跳」游戏的记录
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十二)数据层优化-explain关键字及慢sql优化
- 高吞吐koa日志中间件
- 关于SQLRecoverableException问题的排查和分析(r4笔记第13天)
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化
- node中的Stream-Readable和Writeable解读
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(六)一定要RESTful吗?
- 深入node之Transform
- 巧用shell脚本统计磁盘使用情况(r4笔记第12天)
- 使用fasttext实现文本处理及文本预测
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- bean无法注入(与文件包位置有关)及修改包项目、model名
- Jackson第一篇
- jackson第二篇
- 从源码分析常见集合的区别之List接口
- c++ 调用ffmpeg命令获取视频属性
- Kubernetes 1.19.0——网络策略
- TypeScript 参数简化实战(进阶知识点conditional types,中高级必会)
- 最简实现Promise,支持异步链式调用(20行)
- 40行代码把Vue3的响应式集成进React做状态管理
- 写给女朋友的中级前端面试秘籍(含详细答案,15k级别)
- 写给初中级前端的高级进阶指南
- 为什么 Vue 中不要用 index 作为 key?(diff 算法详解)
- Vue3 的响应式和以前有什么区别,Proxy 无敌?
- 腾讯云TKE-PV使用cos存储案例: 容器目录权限问题
- Vue3 究竟好在哪里?(和 React Hook 的详细对比)