Bean配置
1、xml配置(摘抄自:https://www.cnblogs.com/zyx1301691180/p/7665971.html)
一、setter方法配置Bean:
1、创建一个 Spring Bean Configuration File
2、配置Bean代码:
<bean id="address" class="com.spring.xmlBean.Address"></bean> <bean id="person" class="com.spring.xmlBean.Person"></bean>
3、给Bean配置属性:
<!-- 添加 Address 和 Person -->
<bean id="address" class="com.spring.xmlBean.Address">
<property name="city" value="日照"></property>
<property name="province" value="山东"></property>
</bean>
<bean id="person" class="com.spring.xmlBean.Person">
<property name="name" value="Little-Koala"></property>
<property name="age" value="18"></property>
<!-- 通过 ref 引用了 address 这个 bean -->
<property name="address" ref="address"></property>
</bean>
二:构造器配置Bean
<bean id="address" class="com.spring.xmlBean.Address">
<constructor-arg name="city" value="日照"></constructor-arg>
<constructor-arg name="province" value="山东"></constructor-arg>
<!--
<property name="city" value="日照"></property>
<property name="province" value="山东"></property>
-->
</bean>
2、基于注解的配置
一:注解解析
@Component 是通用标注
@Controller 标注 web 控制器
@Service 标注 Servicec 层的服务
@Respository 标注 DAO 层的数据访问
二:注解配置Bean
使用注解配置bean时候,并没有指定bean的id,那么Spring帮我们创建 bean时候会给一个默认的id,id为类名首字母小写
当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致
@Service("beanFactory") public class BeanFactroyImpl implements BeanFactory {
@Autowired
private UserRepository userRepository;}
@Component
public class LogonService {}
三:配置文件
需要在applicationContext.xml文件中加一行,作用是自动扫描base-package包下的注解:
<context:component-scan base-package="com.stonegeek" />
3、java代码配置
通过java类定义spring配置元数据,且直接消除xml配置文件
Spring3.0基于java的配置直接支持下面的注解:
@Configuration、@Bean、@DependsOn、@Primary、@Lazy、@Import、@ImportResource、@Value
使用java配置的方式,那么就不需要在类上写注解了,直接在配置类里面进行申明即可:
@Configuration // 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
public class CDPlayConfig {
@Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>,默认情况下,bean的ID与带有@bean注解的方法名一样
public CompactDisc sgtPeppers(){
return new SgtPeppers();// 直接new对象做演示
}
@Bean
public CDPlayer cdPlayer() {//由于@Bean注解的存在,却是阻止了方法的调用,直接返回该方法创建的实例对象SgtPapers
return new CDPlayer(sgtPeppers());
}
@Bean public CDPlayer cdPlayer(CompactDisc compactDisc){ //传入一个CompactDisc对象,通过构造器完成注入 return new CDPlayer(compactDisc); }
@Bean
public CDPlayer cdPlayer(CompactDisc compactDisc){ //setter属性的注入
CDPlayer cdPlayer=new CDPlayer(compactDisc);
cdPlayer.setCompactDisc(compactDisc);
return cdPlayer;
}}
4、混合配置
@Import注解,将两个配置类组合在一起,组成一个新的配置类
@Configuration
@Import({CDConfig.class,CDPlayerConfig.class})
public class SoundSystemConfig {
}
@ImportSource注解,将配置文件和XML共同的加载到Spring文件中
XML 中引入JavaConfig

Bean配置的更多相关文章
- 基于注解的bean配置
基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...
- Spring中常用类型的bean配置(Map,List,Set,基本类型)
给自己做个笔记... 有时会用到配置文件中配置一下映射关系,方便以后扩展.此时可采用集合类型的bean配置方式配置.程序中直接注入即可. map类型的: <!-- 旧版方式,无需util包 -- ...
- [原创]java WEB学习笔记101:Spring学习---Spring Bean配置:IOC容器中bean的声明周期,Bean 后置处理器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Spring Bean配置2
Spring表达式语言:SpEL •Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. •语法类似于 EL:SpEL 使用 #{…} 作为定界符,所有在大框 ...
- Spring Bean配置
Spring 是什么 •Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. •Spring 是一个 IOC(DI) 和 ...
- spring中bean配置和bean注入
1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean ...
- 继承 Bean 配置
继承 Bean 配置 Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean子 Bean 从父 Bean 中继承配置, ...
- Spring 中的 Bean 配置
内容提要 •IOC & DI 概述 •配置 bean –配置形式:基于 XML 文件的方式:基于注解的方式 –Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & ...
随机推荐
- sturts标签中
struts中的s标签中textfield和textarea中不需要加上value和中间值,通过name可以直接取到. textfield和textarea标签没有value属性,需要加上${ylqx ...
- redis主从复制读写分离
主从复制,读写分离 Master/Slave 是什么 master写入 slave读取 能干嘛 读写分离,更加安全,性能提升 怎么玩 一主二仆.薪火相传.反客为主 周明老师,能够把长篇大论总结的很精辟 ...
- 【2019.10.17】十天Web前端程序员体验(软件工程实践第五次作业)
结对信息.具体分工 Github地址:https://github.com/MokouTyan/131700101-031702425 学号 昵称 主要负责内容 博客地址 131700101 莫多 代 ...
- 数据结构Java版之堆&堆排序(九)
堆分为大顶堆,和小顶堆. 什么是堆? 堆可以看成是一棵二叉树,二叉树的元素是一个数组不断的从左到右轮训放置.如果是大顶堆,则大的数放上面一层,小的数放下面一层.上一层的数,一定大于下一层的数.小顶堆则 ...
- arcpy显示指定表的索引属性
import arcpy feature_class = "c:/data/well.shp" # Create a list of indexes using the ListI ...
- Windows和Linux下putenv()函数导致composer更新失败
bug复现: 原因: putenv() 函数设置特定的环境变量有可能是一个潜在的安全漏洞,所以这个函数在php配置文件中是默认禁止的,在 php.ini 中查找此函数,然后将此函数删除掉,重载配置即可 ...
- https://github.com/python/cpython/blob/master/Doc/library/contextlib.rst 被同一个线程多次获取的同步基元组件
# -*- coding: utf-8 -*- import time from threading import Lock, RLock from datetime import datetime ...
- Android 打开相册拍照选择多张图片显示
添加依赖: compile 'me.iwf.photopicker:PhotoPicker:0.1.8' compile 'com.jaeger.ninegridimageview:library:1 ...
- Mysql关键字之Group By(二)
原文地址,优先更新https://hhe0.github.io 我们在上一节简单介绍了Mysql中group by关键字的用法,没有看过的同学点击这里了解一下; 文中提到的courses表和相关记录可 ...
- java中如何使用列表数组
java中如何使用列表数组 觉得有用的话,欢迎一起讨论相互学习~Follow Me 转载链接 https://blog.csdn.net/hgtjcxy/article/details/8183519 ...