一、spring(春天) ----软件界的艺术品
官网:spring.io
[中文官网](https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference/data-access.html#jdbc)
1.spring是一个开源框架
2.spring是分层的java EE、一站式轻量级框架。
-
分层的java EE:
持久层: --mybatis
视图层: – jsp /servlet
控制层: --servlet
一站式: java EE每层都有解决方案
轻量级:spring无侵入式 (低耦合,高内聚) -
GA:General Availability,正式发布的版本,官方推荐使用此版本。在国外都是用GA来说明release版本的。
PRE: 预览版,内部测试版. 主要是给开发人员和测试人员测试和找BUG用的,不建议使用;
SNAPSHOT: 快照版,可以稳定使用,且仍在继续改进版本。
优点:(以前我们要自己new对象,现在spring帮我们new对象,以后我们需要对象,就找spring要)
打个比方
- spring 中为什么叫bean工厂而不叫对象工厂?
1)对象 new Object(); 女朋友
2)bean 对象–>具有生命周期的----bean 老婆
3 .spring bean工厂 (本质ioc容器)
你想让bean工厂帮你new对象,首先要告诉spring bean工厂需要产生什么对象?
操作步骤
1.方式一
4. 1)导包(导依赖)
2)通过配置告诉spring bean工厂生产什么样的bean?
方式1:基于xml配置
1)BeanFacotry 按需实例化
2) ApplicationContext 容器启动实例化所有的bean
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
注意:classpath:spring-beans.xml
3) 默认spring bean工厂中产生的bean都是单例bean ,可以通过scope属性来修改
问题:scope=“prototype” 通过factoryBean获取有问题?
默认scopre=“singleton” 单列
方式2:基于注解配置
1、xml+注解配置
2、java+注解配置
方式3:基于java的配置
注意:需要再多导入一个包spring-aop-5.0.14.RELEASE.jar
1)AnnotationConfigApplicationContext
@Configuration
@Bean(name=“redPig”)
总结:IOC是一种思想,为了减轻程序员自己new对象工作,实现IOC方式,第1是自己工厂类(使用工厂模式) 第2是自己使用spring 的bean
工厂。
二. Di
dependency Injection 依赖注入 (给属性注入值)
1、set方法注入
2、构造方法注入
1)根据参数名进行注入 与参数顺序无关,与构造方法定义的顺序有关
2)根据参数下标进行注入
bean的属性
id/name bean的唯一标示
id是bean的唯一标示
id和name可以同时写 id是唯一标示 name别名
name也是bean唯一标示
class
建议:一般建议使用id指定bean的唯一标示