SpringAop
基础知识
在具体介绍IoC和AOP之前,我们先简要说明下Spring常用注解
1、@Controller:用于标注控制器层组件
2、@Service:用于标注业务层组件
3、@Component : 用于标注这是一个受 Spring 管理的组件,组件引用名称是类名,第一个字母小写。可以使用@Component(“beanID”) 指定组件的名称
4、@Repository:用于标注数据访问组件,即DAO组件
5、@Bean:方法级别的注解,主要用在@Configuration和@Component注解的类里,@Bean注解的方法会产生一个Bean对象,该对象由Spring管理并放到IoC容器中。引用名称是方法名,也可以用@Bean(name = “beanID”)指定组件名
6、@Scope(“prototype”):将组件的范围设置为原型的(即多例)。保证每一个请求有一个单独的action来处理,避免action的线程问题。
由于Spring默认是单例的,只会创建一个action对象,每次访问都是同一个对象,容易产生并发问题,数据不安全。
7、@Autowired:默认按类型进行自动装配。在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。
8、@Resource:默认按名称进行自动装配,当找不到与名称匹配的Bean时会按类型装配。
AOP涉及名次
切面(Aspect): 共有功能的实现,例如日志切面,权限切面,验签切面。等同于存放一个公有功能的实现标准java类,当@Aspect修饰java类就代表为切面。
并发执行引擎
hystrix初识
Hystrix熔断框架初识
熔断的背景主要是现如今服务拆分的大体趋势下,如果一个服务A依赖于服务B,C,D,那么称服务B,C,D为服务A的下游,考虑一些情况,在某些原因(突发大流量打垮了下游服务B),因为A服务依赖于服务B,服务B的突然宕机将导致服务A也变得不可用,从而拖垮一整条业务线,为了避免这种极端情况出现,就需要某种机制在下游服务出现异常时切断下游,进行主动降级。
Hystrix框架解决的就是 什么时候熔断,什么时候探测服务是否可用,当依赖恢复正常时,会将原本熔断的应用重新启用,Hystrix通过添加延迟容错和失败容错的逻辑来帮助处理服务之间的交互,使得正常情况下各个服务之间的正常调用,多个微服务组合成一个大服务,极端情况下(大流量情况下)如果有服务超时或者调用失败次数过多,熔断异常服务,保证主服务至少能够正常调用。