Spring
IOC
1)、IOC:控制反转,对象的创建以及销毁交由Spring进行管理。
2)、DI:依赖注入,Bean对象内所需的对象信息由Spring进行注入
Aop
面向切面编程,在不修改原业务代码情况下增加新的功能,常用于日志打印,权限控制等。
底层通过cglib动态代理实现。
依赖注入的方式
1)、构造函数注入
2)、Set方法注入
3)、自动注入
cglib代理与jdk代理有什么区别
cglib代理是在字节码层面衍生出子类由子类实现。
JDK动态代理只能对实现了接口的类生成代理,而不能针对类。
SpringBean是否为单例的?如何设置为多例
默认scope为单例(singleton)
可通过在xml配置文件中Bean标签增加scope属性或者使用@Scope注解进行配置。
SpringBean的作用域都有哪些
singleton 单例:默认的,整个应用内只存在一个当前类的实例对象。
prototype 多例:每个请求都会创建一个新的类的实例对象,
基于Web的
request:每次请求都会创建一个新的Bean实例。
session:每一次回话都会创建一个新的Bean实例。
Spring常用注解
@Bean 用于方法上,方法返回对象实例交于Spring进行管理
@Configuration 用于类上,标明当前类为一个配置类。
@Service
@Controller
@Component
@Scope 设置当前类对象作用域
@Lazy 设置当前类是否为懒加载
@Import 传入实现了ImportSelector接口
@CompoentScan 写入包后会扫描包下所有的注解
@Primary 如果存在两个实例例如实现了同一个接口的类 那么使用@Primary进行修饰那么就会优先使用当前Bean。
@Conditional 用于条件判断,类似于可针对不同的环境使用不同的数据源。
Springmvc常用注解
@RequestMapping 修饰请求地址
@RequestParam 请求参数常用于Get
@RequestBody 将请求Json转换为对象
@ResponseBody 将响应对象转换我Json串
@PathVariable 从请求连接内获取请求参数
@GetMapping get请求
@PostMaping post请求
@ControllerAdvice 全局异常捕获
SpringBean的生命周期?
待续