Spring基础(一)

本文详细介绍了Spring框架的作用与优势,包括其核心机制依赖注入(DI)和面向切面编程(AOP),并探讨了Spring容器实例化的多种方式以及Bean的注入方式与类型。此外,还深入解析了Spring实例化Bean的不同方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Spring的作用及优势

Spring用于整合软件开发中的各种框架,提供组件之间松耦合的平台,目的是将耦合度降至最低,即解耦。

spring是一种开源框架。

spring为javaee应用提供轻量级的解决方案。

spring提倡最少侵入。

spring是一个优秀的mvc框架。

spring基于依赖注入的核心机制,基于aop的声明式事务管理。

我们使用spring框架,主要是使用它的两个特性:IOC和AOP,用IOC整合组件,用AOP管理事务。

(1)依赖注入(DI):在运行期,由外部容器(beanFactory)动态的将依赖对象(dao)注入到组件(action)中。

(2)控制反转(IOC):应用(action)本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器(beanfactory)负责的。这样控制权就由应用转移到了外部容器(配置文件),控制权的转移就是所谓的反转。控制反转和依赖注入是不同角度的同一概念。DI是IOC实现的一种手段,IOC的理论通过DI实现。

(3)面向切面编程(面向方面、AOP):可以通过预编译方式和运行期动态代理实现在不修改源代码的前提下给程序动态统一的添加功能的一种技术。

二、spring容器实例化的方式

(1)BeanFactory

XMLBeanFactory-->Resource-->ClassPathResource\FileSystemResource

(2)ApplicationContext(推荐)

ClassPathXmlApplicationContext\FileSystemXmlApplicationContext

三、Bean注入方式与注入类型

注入方式:

(1)setter注入(默认)

<bean><property name="dao" ref="xxxDao"></property></bean>

(2)构造方法注入

<bean><constructor-arg ref="xxxDao"></constructor-arg></bean>

(3)注解

1>扫描bean组件的注解,相当于<bean>

@Service 用于service业务组件

@Control 用于action控制组件

@Repository 用于dao数据访问组件

@Component 用于其他组件

bean组件扫描到容器后,默认名字为类名(首字母小写),如果需要自定义名称可以使用@Service("id名")

2>依赖注入的注解标记

@Resource(name="") 相当于<property>  JDK提供的先按类型,然后按名称来自动装配

@Autowired 和resource一样,spring提供的先按名称,后按类型来自动装配

@Qualifier("id名")

@Resource按照名字注入的方式比较简单,@Autowired按照名字注入需要再加一个注解@Qualifier("")

3>其他注解

@Scope 相当于<bean scope="">

@PostConstruct 等价于<bean init-method="">

@PreDistroy 等价于<bean destroy-method="">

注解方式和xml方式的比较:

注解方式的优点是使用方便,缺点是和java代码混合在一起,修改不易

xml方式的优点是修改容易,缺点是配置工作量大

注入数据类型:

(1)引用型注入 ref

(2)基本数据类型注入  value

(3)集合类型注入  list、set、map、props

四、spring实例化bean

(1)用构造器实例化

<bean id="" class=""></bean>

(2)用静态工厂方法实例化

<bean id="" class="xxFactroryClass" factory-method=""></bean>

(3)用实例工厂方法实例化

<bean id="xxxfactory" class=""></bean>

<bean id="" factory-bean="xxxfactory" factory-method=""></bean>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值