SSM初步学习
SSM框架
spring核心容器
容器
bean
依赖注入
IOC控制反转
使用对象:从主动new对象变成了外部提供,由IOC容器(外部)负责管理对象,被管理的对象叫做Bean。
DI:依赖注入,绑定两个对象之间的关系。
bean创建出来默认是单例模式,因此封装的model对象其实是不适合交给容器管理的。
实例化bean的三种方式
通过构造方式(反射)
静态工厂(了解即可
实例化工厂
(重)FactoryBean接口
public class UserDaoFactory implements FactoryBean<UserDao> { @Override public UserDao getObject() throws Exception { return new UserDaoImpl(); } @Override public Class<?> getObjectType() { return UserDao.class; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
### 依赖注入的方式
1. setter注入
2. 构造器注入
3. 自动装配(自动找寻set入口装配,所以set入口不能省略
- 按类型
- 按名称(不需要
自动装配的优先级要小于setter和构造器
### 核心容器总结
#### 容器相关
BeanFactory是IOC容器的顶层接口,是bean的延迟加载
ApplicationContext是ioc的核心接口,是bean的立即加载


## 注解开发
```java
//创建新的命名空间context,需要包扫描
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 1.先创建命名空间context-->
<!-- 注解开发-->
<!-- 扫描组件配置-->
<context:component-scan base-package="org.demo"/>
1 |
|
按名称注入不推荐
1 |
|
不过表现层用@Controller,业务层@Service,数据层@Repository,只是便于区分,功能和component一样的
配置类
1 | //配置类 |
注解注入
1 |
|
AOP面向切面编程
在不惊动原始设计的基础上,为其增强功能的编程思想。
将切入点和通知绑定的东西,叫做切面。
想要增强的共性功能,叫做通知。
通知类
1 |
|
1 |
|
1 | //5个切面类型 |
假如有多个MyAdvice可以通过
1 |
来着控制切面类的执行顺序
切入点表达式
1 | ("execution(* org.demo.dao.BookDao.*(..))") |
1 | ("@annotation(包名.自定义注解)") |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 蒜头王八的个人博客!