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中进行显式配置)相关推荐

  1. spring(2)装配Bean

    [0]README 0)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  spring(2)装配Bean 的相关知识: 1)在sprin ...

  2. Spring笔记——装配Bean

    1.Spring配置的可选方案 在XML中进行显式配置. Java中进行显式配置. 隐式的bean发现机制和自动装配. 2.自动化装配bean Spring从两个角度来实现自动化装配: 组件扫描(co ...

  3. javac 与java_javac中使用-d,以及javac / java中使用-cp介绍

    javac中使用-d,以及javac / java中使用-cp介绍 发布时间:2019-01-15 20:39, 浏览次数:555 , 标签: javac java cp * 一般生成把java编译成 ...

  4. opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类

    opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...

  5. Java中的Volatile如何工作? Java中的volatile关键字示例

    如何在Java中使用Volatile关键字 在Java采访中,什么是volatile变量以及何时在Java中使用volatile变量是Java 采访中一个著名的多线程采访问题 . 尽管许多程序员都知道 ...

  6. java中的io复用_从 Java 中的零拷贝到五种IO模型

    在之前的文章中,我们聊过了 Java 中的零拷贝,零拷贝就是指数据不会在内核空间和用户空间之间相互拷贝.这样就减少了内核态与用户态的切换,自然就很高效. 拷贝文件只是 IO 操作中一个特殊的情况,大多 ...

  7. 链式编程在Java 中的应用

    链式编程在Java 中的应用 一.背景 近日在写一个问卷系统的时候,在处理接口返回值的时候,遇到了一些麻烦,总是感觉在处理返回对象的时候,书写的代码有一些冗余,每次都要获取对象,然后设置值,太麻烦了. ...

  8. Spring学习笔记:2(IOC装配Bean之xml方式)

    xml配置方式装配Bean 本文借鉴于:https://www.cnblogs.com/qdhxhz/p/6511887.html Spring框架Bean实例化的方式提供了三种方式实例化Bean 构 ...

  9. Spring 三种bean装配的方式

    1.使用xml配置文件装配 Spring成功启动的三大要件分别是:Bean定义信息.Bean实现类以及Spring本身. 在xml文件中配置bean,然后使用ClassPathXmlApplicati ...

最新文章

  1. 你的机器人女友到了,请签收
  2. 智能家居市场的魔方法则深度剖析
  3. WildFly管理控制台已更新–请求反馈
  4. Linux 命令之 dpkg --Debian 的一个底层包管理工具
  5. gin 生成api文档_gin-swagger 生成RESTful风格OpenAPI文档
  6. 定义与声明c语言,c语言定义与声明.ppt
  7. icem合并面网格_ICEM CFD中合并多个网格
  8. 案例研究:手机APP的UI设计流程
  9. Python3对股票的收益和风险进行分析
  10. 解密X-Change2的脚本
  11. 运放专题:虚短、虚短
  12. pycharm跳出括号快捷键
  13. 面试官:请解释一下Twitter的前10行源代码
  14. 腾讯企业邮箱免费注册及登录方法
  15. 《Modern Python Cookbook》(Python经典实例)笔记 1.10 使用键盘上没有的Unicode字符
  16. 2022华为杯第十九届中研数模
  17. CNSS测量与数据测量第二周作业
  18. STD高级语言程序设计第九天(满分答案,附赠本人程序的解析及坑点标识)
  19. 2019阿里8月份提前批面试题总结
  20. GROM操作mysql数据库

热门文章

  1. 1.DBCP和CP30的区别
  2. python学习-练习题兔子生长问题巩固
  3. maven工程导入eclipse后报错
  4. 微软笔试题,机器人消砖块
  5. 使用R语言分析微信好友
  6. maven jdk 版本配置
  7. html回顾随笔JS(*^__^*)
  8. UITableView样式和UITableViewCell样式
  9. Git使用入门 - 在Git上新建项目
  10. Ubuntu Server 安装部署 Cacti 服务器监控