spring 03

Spring

回顾

IOC 控制反转: Spring容器控制对象

DI: 依赖注入,Spring注入依赖组件

容器

Web 容器,Spring 容器,Java Bean容器,容器类

容器: 可以承载东西的器物

Web 容器:承载执行Web组件(Servlet、HTML、过滤器)的容器,如:Tomcat、
Web Spare,WebLogic,Jetty。因为可以执行Servlet,也称Servlet引擎。

Spring: 承载管理JavaBean组件的容器,称为JavaBean容器,Spring容器,Bean容器。

集合:承载Java对象的容器,称为: 容器类, Java容器

Spring注入集合和数组

Spring注入集合类型的Bean属性

注入类型:

  1. 数组 <array>
  2. List <list>
  3. Set <set>
  4. Map <map>
    1. 子元素 <entry>
  5. 子元素
    1. 基本值 <value>
    2. 对象 <ref> 引用其他Bean组件 <bean> 创建新组件

如:

class DemoBean{
	List<String> names;
	public void setNames(List<String> names){
		this.names = names;
	}
}

<bean id="demo" class="DemoBean">
	<property name="names">
		<list>
			<value>Tom</value>
			<value>Jerry</value>
			<value>Andy</value>
		</list>
	</property>
</bean>

利用DI解耦

紧耦合:组件之间紧密耦合。不方便重构。

松耦合:组件之间松散结合在一起,方便重构。

解耦:将紧耦合改成松耦合,称为解耦。

  1. 利用接口(面向接口编程)可以实现解耦
  2. 利用反射API进行解耦
  3. Spring的DI支持利用接口解耦

自动注入

可以不用在写 <property> 标签, 根据类型或名字自动完成组件注入。

按照名称注入:

  1. 被注入的bean属性名和Bean组件的ID名一致
  2. 在bean标签上声明自动注入
  3. Spring在启动时候,会自动根据名字找出组件进行注入。

按照类型注入:

  1. 设置被注入的Bean为 autowire=“byType”
  2. Spring启动时候根据被注入的的Bean的属性类型查找类型兼容的Bean组件,如果找到就进行自动注入,找不到就取消。 如果找到两个以上的Bean组件则报错误!!!

Spring 读取Properties

Spring 表达式

语法:

#{BeanID.Bean属性}

例子:

  1. 读取bean属性: #{worker.name} 读取worker组件Bean属性name的值
  2. 读取list集合: #{demo.names[0]} #{demo.names[1]}
  3. 读取数组: #{demo.weight[0]} #{demo.weight[1]}
  4. 读取Map: #{demo.table.东} #{demo.table[‘东’]}
  5. 读取Properties: #{jdbc.driver} #{jdbc.url}

Spring 注解

Spring提供了注解:用于声明Bean,注入Bean属性等功能

  1. 注解被编译器检查处理,编译器可以检查注解使用错误!
  2. 注解大多采用自动方式执行,减少配置,写的少做的多。
  3. 在源代码中直接书写,自己开发程序可以标注注解。
  4. 注解声明的组件和XML声明的组件地位平等。

声明组件

@Component

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值