spring三: 装配bean( 在xml中进行显式配置, 在java中进行显式配置)
ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class); SpringConfiguration配置类作为类
AnnotationConfigApplicationContext的参数,那么SpringConfiguration就可以省略@Configuration. 如下
//@Configuration
@ComponentScan(basePackages = {"com.atchina"})
public class SpringConfiguration {}
在java中进行显式配置
package soundsystem2;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class CDPlayerConfig {// @Bean注解告诉spring这个方法将会返回一个对象,该对象// 要注册为spring应用上下文中的bean.@Beanpublic CompactDisc compactDisc(){return new SgtPeppers();}@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc){return new CDPlayer(compactDisc);}
}
通过xml装配bean
spring刚刚出现时,xml是描述配置的主要方式.但现在xml已经不再是Spring的唯一可选方案。spring已经有了强大的自动化配置和基于java的配置,xml不再是第一选择了。
<?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:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置bean --></beans>
@Import注解
public class JdbcConfig {@Bean(name="runner")@Scope("prototype")public QueryRunner getRunner(DataSource dataSource){return new QueryRunner(dataSource);}@Bean("dataSource")public DataSource getDataSource(){ComboPooledDataSource dataSource = new ComboPooledDataSource();try {dataSource.setUser("root");dataSource.setPassword("1");dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");dataSource.setDriverClass("com.mysql.jdbc.Driver");}catch (Exception e){e.printStackTrace();}return dataSource;}
}
@PropertySource
@ComponentScan(basePackages = {"com.atchina"})
@Import(JdbcConfig.class)
@PropertySource("classpath:jdbcConfig.properties")
public class SpringConfiguration {}public class JdbcConfig {@Value("${jdbc.username}")private String username;@Value("${jdbc.password}")private String password;@Value("${jdbc.url}")private String url;@Value("${jdbc.driver}")private String driver;@Bean(name="runner")@Scope("prototype")public QueryRunner getRunner(DataSource dataSource){return new QueryRunner(dataSource);}@Bean("dataSource")public DataSource getDataSource(){ComboPooledDataSource dataSource = new ComboPooledDataSource();try {dataSource.setUser(username);dataSource.setPassword(password);dataSource.setJdbcUrl(url);dataSource.setDriverClass(driver);}catch (Exception e){e.printStackTrace();}return dataSource;}
}
spring三: 装配bean( 在xml中进行显式配置, 在java中进行显式配置)相关推荐
- spring(2)装配Bean
[0]README 0)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review spring(2)装配Bean 的相关知识: 1)在sprin ...
- Spring笔记——装配Bean
1.Spring配置的可选方案 在XML中进行显式配置. Java中进行显式配置. 隐式的bean发现机制和自动装配. 2.自动化装配bean Spring从两个角度来实现自动化装配: 组件扫描(co ...
- javac 与java_javac中使用-d,以及javac / java中使用-cp介绍
javac中使用-d,以及javac / java中使用-cp介绍 发布时间:2019-01-15 20:39, 浏览次数:555 , 标签: javac java cp * 一般生成把java编译成 ...
- opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类
opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...
- Java中的Volatile如何工作? Java中的volatile关键字示例
如何在Java中使用Volatile关键字 在Java采访中,什么是volatile变量以及何时在Java中使用volatile变量是Java 采访中一个著名的多线程采访问题 . 尽管许多程序员都知道 ...
- java中的io复用_从 Java 中的零拷贝到五种IO模型
在之前的文章中,我们聊过了 Java 中的零拷贝,零拷贝就是指数据不会在内核空间和用户空间之间相互拷贝.这样就减少了内核态与用户态的切换,自然就很高效. 拷贝文件只是 IO 操作中一个特殊的情况,大多 ...
- 链式编程在Java 中的应用
链式编程在Java 中的应用 一.背景 近日在写一个问卷系统的时候,在处理接口返回值的时候,遇到了一些麻烦,总是感觉在处理返回对象的时候,书写的代码有一些冗余,每次都要获取对象,然后设置值,太麻烦了. ...
- Spring学习笔记:2(IOC装配Bean之xml方式)
xml配置方式装配Bean 本文借鉴于:https://www.cnblogs.com/qdhxhz/p/6511887.html Spring框架Bean实例化的方式提供了三种方式实例化Bean 构 ...
- Spring 三种bean装配的方式
1.使用xml配置文件装配 Spring成功启动的三大要件分别是:Bean定义信息.Bean实现类以及Spring本身. 在xml文件中配置bean,然后使用ClassPathXmlApplicati ...
最新文章
- 你的机器人女友到了,请签收
- 智能家居市场的魔方法则深度剖析
- WildFly管理控制台已更新–请求反馈
- Linux 命令之 dpkg --Debian 的一个底层包管理工具
- gin 生成api文档_gin-swagger 生成RESTful风格OpenAPI文档
- 定义与声明c语言,c语言定义与声明.ppt
- icem合并面网格_ICEM CFD中合并多个网格
- 案例研究:手机APP的UI设计流程
- Python3对股票的收益和风险进行分析
- 解密X-Change2的脚本
- 运放专题:虚短、虚短
- pycharm跳出括号快捷键
- 面试官:请解释一下Twitter的前10行源代码
- 腾讯企业邮箱免费注册及登录方法
- 《Modern Python Cookbook》(Python经典实例)笔记 1.10 使用键盘上没有的Unicode字符
- 2022华为杯第十九届中研数模
- CNSS测量与数据测量第二周作业
- STD高级语言程序设计第九天(满分答案,附赠本人程序的解析及坑点标识)
- 2019阿里8月份提前批面试题总结
- GROM操作mysql数据库