# SpringDemo
**Repository Path**: Hinak0/spring-demo
## Basic Information
- **Project Name**: SpringDemo
- **Description**: 用简洁的语言描述一下吧
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-08-07
- **Last Updated**: 2022-10-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SPRING
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。\
这玩意的好处是可以管理对象的生命周期,达到解耦的目的。
## spring配置
### scope(作用范围)
- singleton (默认单例)
- 生命周期和容器相同
- prototype (多例)
- `getBean()`时创建
- 长时间不使用会被垃圾回收
- request (单次请求)
- session (单次会话)
### 生命周期配置
`init-method`和`destory-method`配置初始化方法和销毁方法
### 实例化方式
- 默认无参构造
- 工厂静态方法(指定`factory-method`)
- 工厂实例方法(指定`factory-bean`)
### 依赖注入
- p命名空间,``通过`set`方法注入
- ``通过有参构造注入
- 基本数据类型使用``注入
- 集合数据类型采用`
等`
### 引入其他配置文件
``
## spring API
### ApplicationContext的实现类
- `ClassPathXmlApplicationContext`从类的根路径加载配置文件
- `FileSystemXmlApplicationContext`从磁盘加载配置文件
- `AnnotationConfigApplicationContext`从注解获取spring容器
## spring注解开发

SpringBoot中都是老熟人了。\
**`@Component('id')`标识组件->`@ComponentScan('path')`配置包扫描->`@Autowired`注入组件**

### `@Configuration`与`@Bean`
这两个注解标志一个类称为**核心配置类**,将一个方法的返回值作为一个Bean.