SpringBoot知识要点整理

本文详细介绍了SpringBoot的核心概念,包括依赖注入的定义与目的,Spring IoC容器的运作机制,如使用@Component、@Service、@Repository、@Controller等注解声明Bean。同时,讲解了Java配置的使用,如@Configuration和@Bean的作用。此外,文章还涉及到AOP的解耦目的,以及常用的切面注解@Aspect、@After、@Before、@Around。还讨论了Bean的Scope、Spring EL、初始化和销毁、Profile、事件机制以及Spring Aware。最后,文章提到了多线程、计划任务、条件注解、组合注解的工作原理,以及Spring MVC的基础知识。
摘要由CSDN通过智能技术生成
本资源来自(JavaEE 开发的颠覆者)Spring Boot 项目实战(汪云飞编著)一书的要点知识;
本资源为上述书本的要点知识记录。仅供学习使用。
 

13.1依赖注入

定义:所谓依赖注入指的是容器负责创建对象和维护对象之间的依赖关系。

依赖注入的目的主要是为了解耦。

Spring IoC容器负责创建Bean,并通过容器将功能类Bean注入到所需要的Bean中。

Spring提供使用xml、注解、Java配置(配置元数据、groovy配置实现Bean的创建和注入。

Spring容器解析这些配置元数据进行Bean初始化、配置和管理依赖。

 

声明Bean的注解:

@Component组件,没有明确的角色。

@Service在业务逻辑层(service层)使用。

@Repository在数据访问层(dao层)使用。

@Controller在展现层(MVC->Spring MVC)使用。

 

注入Bean的注解:

@Autowired:Spring提供的注解。

@Inject: JSR-330提供的注解。

@Resource:JSR-250提供的注解。

@Autowired、@Inject、@Resource可注解在属性或者set方法上,但注解在属性上可使代码更少,层次更清晰

配置类的声明:

@Configuration声明当前类是一个配置类。

@ComponentScan(.....包名):自动扫描包名下所有使用@Component、@Service、@Repository、@Controller的类,并注册为Bean。

 

1.3.2 Java配置

解释:Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置,Java配置也是SpringBoot推荐的配置方式。

Java配置是通过@Configuration和@Bean来实现的:

@Configuration:声明当前类是一个配置类,相当于一个Spring配置的xml文件。意味这个类里有0个或多个@Bean注解。(若所需的Bean都在此类中,就没必要使用包扫描)

@Bean:注解在方法上,声明当前方法的返回值是一个Bean。

 

在Spring容器中,只要容器中存在某个Bean,就可以在另外一个Bean的声明方法的参数中注入。

 

1.3.3 AOP(面向切面编程)

Spring的AOP存在的目的就是为了解耦。

AOP可以使一组类共享相同的行为。

Spring支持AspectJ的注解式切面编程:

  1. 使用@Aspect声明是一个切面。
  2. 使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。
  3. 拦截规则为切点(PiontCut),为了使切点复用,可使用@PointCut专门定义拦截规则,然后在@After、@Before、@Around的参数中调用。
  4. 其中符合条件的每一个被拦截处为连接点(JoinPoint)。

 

2.1 Bean的Scope

Scope是用来描述Spring容器如何新建Bean的实例的。

Spring的Scope有以下几种,通过@Scope注解来实现:

  1. Singleton: 一个Spring容器中只有一个Bean的实例,全容器共享一个实例。(默认配置/单例模式
  2. Prototype:每次调用新建一个Bean的实例。(多例模式
  3. Request:Web项目中,给每一个http request新建一个Bean实例。(一次http请求内有效)
  4. Session:Web项目中,给每一个http Session新建一个Bean实例。(一个用户
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值