Spring 学习笔记(三)

一、Spring IOC 的自动装备属性

两种方式 :

第一种 autowire="byName" 自动装配 根据bean的 setter和getter 名称进行匹配 匹配到了 直接装配。

第二种 autowire="byType" 自动装配 根据bean的属性类型 即class类型相同  但是不能有一个以上的相同类型

<bean id="address" class="xyz.yangjian.spring.demo.autowire.Address"
	p:city="Beijing" p:street="LongZe"></bean>
		
<bean id="car" class="xyz.yangjian.spring.demo.autowire.Car"
	p:brand="Audi" p:price="300000"></bean>
		
<!-- 手动装配 -->
<bean id="person" class="xyz.yangjian.spring.demo.autowire.Person"
	p:name="Mike" p:address-ref="address" p:car-ref="car"></bean>
	
<!-- 自动装配 两种方式 -->
<!-- 第一种 byName 根据 bean的名字和当前bean的setter getter 方法名进行匹配 -->
<bean id="person1" class="xyz.yangjian.spring.demo.autowire.Person"
	p:name="YangJian" autowire="byName"></bean>

<!-- 第二种 byType 根据 bean 的属性类型进行自动装备 但是不能有 一个以上的相同类型class -->
<bean id="person2" class="xyz.yangjian.spring.demo.autowire.Person"
	p:name="jessy" autowire="byType"></bean>

结果

Person [name=Mike, address=Address [city=Beijing, street=LongZe], car=Car [brand=Audi, price=300000.0]]
Person [name=YangJian, address=Address [city=Beijing, street=LongZe], car=Car [brand=Audi, price=300000.0]]
Person [name=jessy, address=Address [city=Beijing, street=LongZe], car=Car [brand=Audi, price=300000.0]]

二、Spring 的bean 之间的关系 relation

第一种关系 继承 parent="" 继承父类的所有属性 

<!-- abstract="true" 设置bean 为抽象的 不能被实例化 可以当成模板 -->
<bean id="address" 
	p:city="Beijing!" p:street="HuiLongGuan" abstract="true"></bean>
		
<!-- parent 是继承关系 会集成address 的所有属性 -->
<bean id="address2" class="xyz.yangjian.spring.demo.autowire.Address" 
	parent="address"></bean>

第二种关系  依赖

<bean id="car" class="xyz.yangjian.spring.demo.autowire.Car"
	p:brand="Audi" p:price="300000"></bean>
		
<!-- depend-on 依赖属性  必须有一个关联的car 换句话说这个person 必须依赖于car 这个bean-->
<bean id="person" class="xyz.yangjian.spring.demo.autowire.Person" 
	p:name="Tom" p:address-ref="address2" depends-on="car"></bean>

运行结果

Address [city=Beijing!, street=HuiLongGuan]
Person [name=Tom, address=Address [city=Beijing!, street=HuiLongGuan], car=null]

三、Spring 的作用域 scope

两种 第一种 singleton 单例 第二种 prototype 原型

<!-- 使用 bean 的scope 属性来配置bean作用域
	singleton : 默认值 容器初始化时创建bean 实例 再整个容器的生命周期内只创建一个bean 单例的
	prototype : 原型的 容器初始化时不会创建bean 创建实例对象时会创建一个新的bean 并返回
 -->
<bean id="car" class="xyz.yangjian.spring.demo.autowire.Car"
	scope="prototype">
	<property name="brand" value="Audi"/>
	<property name="price" value="300000"/>
</bean>

运行结果

singleton 单例 

ApplicationContext ac = new ClassPathXmlApplicationContext("beans-scope.xml");

在构建容器的时候 就调用构造方法 
Car 构造方法打印 : 我是car构造器

prototype  原型

ApplicationContext ac = new ClassPathXmlApplicationContext("beans-scope.xml");
		
Car car1 = (Car) ac.getBean("car");
		
Car car2 = (Car) ac.getBean("car");
		
System.out.println(car1 == car2);

每创建一次对象 调用一次构造器 创建新的实例

控制台打印结果:
我是car构造器
我是car构造器
false

 

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值