spring是一个轻量级的,采用IOC与AOP编程思想的java后端开发框架,简化了企业级的应用开发。
Spring体系
数据访问层,Web层,配置中心,测试区
IOC
控制反转,将创建对象的控制权交由Spring框架,需要时直接从框架获取。
底层实现方式为:解析xml/扫描注解标签 + 工厂模式 + 反射机制
IOC容器具有依赖注入功能,负责对象的实例化、初始化,对象之间的依赖关系配置和对象的销毁,对外提供对象的查找等操作。
AOP
面向切面编程,就是将一些公共功能进行抽取,不用程序员直接在方法中调用,而是交由一个代理对象去调用,在我们调用一些方法时,将公共的方法横切进来。
Spring Bean 管理
基于XML配置
实现IOC需要依赖注入做支持
注入方式:set注入
构造方法注入
<bean id="user" class="com.ff.spring.model.User" scope="prototype"/>
注解方式
开启注解扫描
<!--
使用注解时,需要配置一个包名,spring对该包进行扫描
-->
<context:component-scan base-package="com.ff.spring"></context:component-scan>
在想要注解的类上添加注解标签
@Component(value=" ")
@Service
@Repository
@Scope(value=“prototype ”) 原型模式
@Scope(value=“ singleton ”) 单例模式
注入属性
@Autowired 自动注入
byType 自动注入
byName 自动注入
jdk注解@Resource自动注入(可按Name/Type)
XML与注解对比
注解方便直观高效,以硬编码写入java,修改时需要重新编译
xml,代码与配置分离,只要在xml中修改,无需重新编译代码,
缺点是编写麻烦,效率低。