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 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & ...
随机推荐
- CF1163F Indecisive Taxi Fee(线段树+图论)
做法 这里的修改是暂时的 找到一条最短路径\(E\),需要考虑的是将最短路径上的边增大 每个点考虑与\(1/n\)的最短路径在E上前缀/后缀的位置,设\(L_i,R_i\) 考虑每条边\((u,v)\ ...
- [CMS]Joomla 3.4.6-RCE漏洞复现
0x00:简介 1.Joomla是一套全球有名的CMS系统. 2.Joomla基于PHP语言加上MySQL数据库所开发出来的WEB软件系统,目前最新版本是3.9.12. 3.Joomla可以在多种不同 ...
- 利用Unicode RTLO方法构建恶意文件名
一:简介 RTLO"字符全名为"RIGHT-TO-LEFTOVERRIDE",是一个不可显示的控制类字符,其本质是unicode 字符."RTLO"字 ...
- ubuntu之路——day11.5 迁移学习
在深度学习领域中,最强力的理念之一就是可以将神经网络学习的一种知识应用到另一个独立的任务中. 看上面的例子,首先我们有一个已经完成训练的神经网络,其目标是图像识别,我们有了绿色的1000000张图片并 ...
- Android分区解释
让我们从Android手机和平板电脑的标准内存分区列表开始.分区有:/boot/system/recovery/data/cache/misc 此外,有SD卡的分区./sdcard/sd-ext 请注 ...
- 对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。 Nested exception: 对实体 "useSSL" 的引用必须以 ';' 分隔符结尾
今天在定义数据源的时候,在配置context.xml文件时,连接mysql数据库的url一行发生错误,报错:“对实体 "useSSL" 的引用必须以 ';' 分隔符结尾”.以下是我 ...
- 静态导入(static import)
1.传统静态方法的调用方式 定义一个Common类,里面有静态方法和静态常量 package com.example.common; public class Common { public stat ...
- lnmp新增https访问【转】
环境是使用lnmp一键安装包搭建的: 1 首先去这个网站下载证书:免费ssl证书 最终会得到两个文件 2:在/usr/local/nginx/conf创建cert目录把这两个文件放进去,这个地址后面有 ...
- pt-table-checksum校验与pt-table-sync修复数据【转】
1:下载工具包 登录网站下载相应的工具包 https://www.percona.com/downloads/percona-toolkit/LATEST/ 2:安装 (1)yum安装: sudo y ...
- Vue导出ZIP
Export2Zip /* eslint-disable */ require('script-loader!file-saver'); import JSZip from 'jszip' expor ...