开源中国+springboot项目
spring boot学习
Bean
Spring Bean是指是被实例的,组装的及被Spring 容器管理的Java对象。Spring应用上下文种所有的bean都会给定一个ID。如果所有的对象都是独立的,彼此之间没有任何依赖,那么使用组件扫描就能自动化装配bean。
但是实际工作中,很多对象会依赖其他对象完成任务。这时候就需要能够将组件扫描得到的bean和他们依赖装配在一起。这就是自动装配(autowiring)
Bean缓存池:Hashmap
AOP(Aspect Orient Programming)
AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。
AOP适用场景: 想象下面的场景,开发中在多个模块间有某段重复的代码,在传统的面向过程编程中,我们也会将这段代码,抽象成一个方法,然后在需要的地方分别调用这个方法,这样当这段代码需要修改时,我们只需要改变这个方法就可以了。然而需求总是变化的,有一天,新增了一个需求,需要再多出做修改,我们需要再抽象出一个方法,然后再在需要的地方分别调用这个方法,又或者我们不需要这个方法了,我们还是得删除掉每一处调用该方法的地方。实际上涉及到多个地方具有相同的修改的问题我们都可以通过 AOP 来解决。
AOP 要达到的效果是,保证开发者不修改源代码的前提下,去为系统中的业务组件添加某种通用功能。例如,程序3处地方调用方法A,现想在方法A调用之前调用方法B,通过SpringAOP将切面定义的内容织入到我们的代码中,从而实现前后的控制逻辑。
IOC
理解IOC首先要理解Spring Bean和设计模式的原理。
Ioc—Inversion of Control,即“控制反转”,是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。
注解
- CrossOrigin: 通过向response里添加 Access-Control-Allow-Origin等响应头信息来实现跨域访问。跨域指地址A加载的页面,不能访问地址B的服务。浏览器在跨域访问时,会自动添加HTTP头信息。在这里,相当于浏览器添加了头部,接口支持并返回相应头部。
- Component: @Component、@Service、@Repository以及 @Controller等注解来实现bean托管给Spring容器管理。
- RestController: = @Controller + @ResponseBody启动的时候,spring 会自动加载解析相关的bean以及bean的方法,然后包装成HttpMthod对象.
- RequestMapping注解类: