Spring Bean装配方式
Spring装配机制
- 在xml中进行显示配置
- 在Java中进行显示配置
- 隐式bean发现机制和自动装配
自动化装配bean
- 组件扫描(component scanning),Spring会自动发现应用上下文中的bean
- 自动装配(autowiring),Spring自动满足bean之间的依赖
Speak.java
public interface Speak {
void say();
}
ChineseSpeak.java
@Component("chineseSpeak")
public class ChineseSpeak implements Speak {
public void say() {
System.out.println("用中文说");
}
}
SpeakConfig.java
@Component
@ComponentScan(basePackages = "com.xqh.spring.autowire")
public class SpeakConfig {
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpeakConfig.class)
public class SpeakTest {
@Autowired
private Speak speak;
@Test
public void sayTest(){
speak.say();
}
}
@Component注解告诉Spring这是一个组件类并为之创建bean,bean的id为首字母变小写的类名
@ComponentScan注解启用组件扫描并默认扫描与配置类相同的包
@Autowired注解会在Spring上下文中在自动装配符合的bean
通过java代码装配bean
创建配置类并标记 @Configuration注解
创建方法标记 @Bean注解
Speak.java
public interface Speak {
void say();
}
ChineseSpeak.java
public class ChineseSpeak implements Speak {
public void say(){
System.out.println("通过java代码装配-用中文说");
}
}
SpeakConfig.java
@Configuration
public class SpeakConfig {
@Bean
public Speak chineseSpeak() {
return new ChineseSpeak();
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpeakConfig.class)
public class SpeakTest {
@Autowired
private Speak speak;
@Test
public void sayTest(){
speak.say();
}
}
@Configuration标记的类表名是一个配置类并且包含在Spring上下文中如何创建bean的细节
@Bean注解告诉Spring这个方法将返回一个对象并且注册为Spring上下文中的bean
通过xml装配bean
- 创建Spring Xml配置文件
- 在JavaConfig中导入bean配置文件
Speak.java
public interface Speak {
void say();
}
ChineseSpeak.java
public class ChineseSpeak implements Speak {
public void say() {
System.out.println("通过xml装配bean-用中文说");
}
}
SpeakConfig.java
@Configuration
@ImportResource("classpath:spring-beans.xml")
public class SpeakConfig {
}
spring-beans.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="chineseSpeak" class="com.xqh.spring.xmlconfig.ChineseSpeak"></bean>
</beans>
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpeakConfig.class)
public class SpeakTest {
@Autowired
private Speak speak;
@Test
public void sayTest(){
speak.say();
}
}
Spring Bean装配方式的更多相关文章
- Spring Bean装配详解(五)
装配 Bean 的概述 前面已经介绍了 Spring IoC 的理念和设计,这一篇文章将介绍的是如何将自己开发的 Bean 装配到 Spring IoC 容器中. 大部分场景下,我们都会使用 Appl ...
- Spring Bean装配(下)——注解
@Repository,@Service,@Controller这三个注解是基于component定义的注解 component-scan:组件扫描 base-package:扫描这个下的所有类 &l ...
- Spring Bean装配(上)
Bean:在spring的IOC里面,把配置到IOC容器里面的实体或者是对象都称为Bean Bean配置项 Bean的作用域 Bean的生命周期 Bean的自动装配 Resources&Res ...
- Spring入门篇——第4章 Spring Bean装配(下)
第4章 Spring Bean装配(下) 介绍Bean的注解实现,Autowired注解说明,基于java的容器注解说明,以及Spring对JSR支持的说明 4-1 Spring Bean装配之Bea ...
- Spring Bean装配笔记
Spring Bean装配笔记 Spring中的Bean是一个很重要的概念.Spring作为一个Bean容器,它可以管理对象和对象之间的依赖关系,我们不需要自己建立对象,把这部分工作全部转交给容器完成 ...
- Spring入门篇——第3章 Spring Bean装配(上)
第3章 Spring Bean装配(上) 介绍Bean的作用域.生命周期.Aware接口.自动装配和Resource等内容. 3-1 Spring Bean装配之Bean的配置项及作用域 从上至下依次 ...
- spring Bean装配的几种方式简单介绍
Spring容器负责创建应用程序中的bean同时通过ID来协调这些对象之间的关系.作为开发人员,我们需要告诉Spring要创建哪些bean并且如何将其装配到一起. spring中bean装配有两种方式 ...
- Spring Bean装配学习
解释:所谓装配就是把一个类需要的组件给它设置进去,英文就是wire,wiring:注解Autowire也叫自动装配. 目前Spring提供了三种配置方案: 在XML中进行显式的配置 在Java中进行显 ...
- Spring bean注入方式
版权声明:本文为博主原创文章,如需转载请标注转载地址. 博客地址:http://www.cnblogs.com/caoyc/p/5619525.html Spring bean提供了3中注入方式:属 ...
随机推荐
- GNU/Linux-MariaDB
第一章 基础知识 基本术语 数据库(Database) 存储已经组织好的数据的 容器(通 常是 一个文件或者文件集) 人们经常使用术语"数据库"来指代他们运行的数据库软件,这是错 ...
- sql server 把数据 复制成脚本文件
问题描述:想把一个数据库里的表和字段复制到另一个数据库里: 方法一:a.生成脚本文件 选择数据库右键->任务->生成脚本: b. 选择特定的数据库对象->下一步: c.高级-> ...
- Android 之json解析
JSON(JavaScript Object Notation) 定义:字符串 键值对 解析方法有JSON,谷歌GSON,阿里巴巴FastJSON(推荐) 一种轻量级的数据交换格式,具有良好的可读和便 ...
- 关于IOS的屏幕适配(iPhone)——资源适配
IOS的屏幕适配几乎不需要大量的代码操作,更多的时间我们只是动动鼠标选择一下就搞定.可以苹果在这方面做的还是比较人性的,解放了开发者. 首先来说说Iphone这几种屏(由于最近做的是iPhone AP ...
- oracle 数据库管理员
一.数据库管理员每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责.那么一个数据库管理员的主要 ...
- Spring中的Service/DAO/DTO
- Grunt针对静态文件的压缩,版本控制打包方案
在讲之前先谈谈大致步骤:安装nodejs -> 全局安装grunt -> 项目创建package.json --> 项目安装grunt以及grunt插件 -> 配置Gruntf ...
- M方法
ThinkPHP函数详解:M方法 M方法用于实例化一个基础模型类,和D方法的区别在于:1.不需要自定义模型类,减少IO加载,性能较好:2.实例化后只能调用基础模型类(默认是Model类)中的方法:3. ...
- Cornfields poj2019 二维RMQ
Cornfields Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u Submit S ...
- Windows下Apache添加SSL模块
参考资料:http://www.yuansir-web.com/2011/05/12/hello-world/测试环境:windows2003 32位 + Apache2.4 + PHP5.4 一.准 ...