⼀ Spring简介1.1 企业级系统特点
1.
⼤规模:⽤户数量多、数据规模⼤、功能众多
2.
性能和安全要求⾼
3.
业务复杂,需要灵活应变
Spring 提供的IOC和AOP应⽤,可以将组件的耦合度将⾄最低,即解耦。便于系统后期的维护和升
级。同时Spring也为系统提供了⼀个整体的解决⽅案,开发者可以利⽤它本身提供的功能外,也可以与
第三⽅框架和技术整合应⽤,可以⾃由选择采⽤哪种技术进⾏开发。
Spring 被称为Java EE的春天,是当前主流框架。
Spring的体系结构如下图所示:
1.2 Spring 的优点
1.
低侵⼊式设计。
2
2.
独⽴于各种应⽤服务器。
3.
依赖注⼊特性将组件关系透明化,降低了耦合度。
4.
⾯向切⾯编程特性允许将通⽤任务进⾏集中式处理。
5.
和第三⽅框架可以很好的进⾏整合。
1.3 Spring 的核⼼功能
Spring 是⾯向Bean的编程。在Spring中,任何的Java类和JavaBean都被当成Bean处理,这些
Bean通过Spring容器管理和应⽤。Spring容器提供了以下两个核⼼功能机制来简化Bean对象创建和
Bean对象之间的解耦。
1.
IOC (
Inversion Of Control
):控制反转 / DI(
Dependency Injection
):依赖注⼊
2.
AOP(
Aspect Oriented Programming
):⾯向切⾯编程
Spring容器有BeanFactory和ApplicationContext两种类型。所谓的JavaBean,其实就是⼀种简单
规范的Java对象。当需要管理JavaBean对象时候可以使⽤Spring。Spring是最简介的对象管理⽅案之一
IOC和DI
IOC:控制反转,指最初由new进行创建对象,现在交给第三方框架创建,注入.降低耦合度
DI:依赖注入是实现IOC主要技术途径
<!--DI中构造器注入-->
<bean>
<bean id="people" class="com.wh.DI.entity.people">
<property name="username" value="张三"></property>
<property name="age" value="15"></property>
<property name="sex" value="男"></property>
</bean>
<bean>
<!--构造器注入 index 表示构造器中参数位置-->
<constructor-arg index="0" ref="people"></constructor-arg>
</bean>
</bean>
二:自动装配
Spring IOC 容器可以⾃动装配(autowire)相互协作bean之间的关联关系。autowire可以针对单个
bean进⾏设置,autowire的⽅法之处在于减少xml的注⼊配置。
在xml配置⽂件中,可以在<bean/>元素中使⽤autowire属性指定⾃动装配规则,⼀共有五种类型
值
属性值
| 描述 |
no |
禁⽤⾃动装配,默认值
|
byName |
根据属性名⾃动装配,此选项将检查容器并根据名字查找与属性完全
⼀致的bean,并将其与属性⾃动装配。
|
byType |
如果容器中存在⼀个与指定属性类型相同的bean,那么将于该属性⾃
动装配。
|
constructor |
与byType的⽅式类似,不同之处在于它应⽤于构造器函数
|
autodetect |
通过bean类决定是使⽤constructor还是byType⽅式进⾏⾃动装配,
如果发现默认的构造器,那么将使⽤byType⽅式。
|