Spring全家桶
文章平均质量分 65
Spring全家桶学习记录
摸鱼小能手tay
这个作者很懒,什么都没留下…
展开
-
CAP理论
CAPC(Consistency):强一致性A(Availability):可用性P(Parition tolerance):分区容错性这三个基本需求,最多只能同时满足其中的两项,在分布式环境下因为P是必须的,因此往往选择就在 CP 或者 AP 中。各种组合的场景CA - 这个比较特殊,在分布式场景下这个不可能被实现。一般在 单点 或 单点集群上来实现,满足一致性 和 可用性,通常扩展性上不太友好。CP - 满足一致性 和 分区容错性 的系统,通常性能不是特别高。AP - 满足可用性转载 2020-11-16 18:00:49 · 457 阅读 · 0 评论 -
Eureka自我保护机制
Eureka注册中心Server在一定时间内(默认90s。Eureka服务端和客户端默认每隔30秒会联系一下,30s之后client会再访问一次server,如果server有3次没有收到client的注册信息(心跳信息),他就会把这个服务从列表中删除)没有收到某服务的心跳,就会注销该实例,但是当发生网络故障的时候(比如延时、卡顿)会导致Client和Server不能正常通信,此时的Client微服务是好的不应该给注销掉,所以Eureka在此时采用“自我保护机制”。自我保护机制:当Eureka Serve原创 2020-11-16 17:23:04 · 144 阅读 · 0 评论 -
SpringCloud和Dubbo区别
SpringCloud(微服务开发的平台)Dubbo(专注服务发布和调用)性能Dubbo性能大约是SpringCloud的2~3倍服务注册中心springcloud netflix eureka和springcloud zookeeperzookeeper服务调用方式Rest apiRPC服务网关springcloud zuul和springcloud gateway无断路由springcloud netflix Hystrix集群容错...原创 2020-11-01 21:53:52 · 430 阅读 · 0 评论 -
SpringCloud常见组件详解
一、什么是springcloudSpringCloud:服务治理平台,包含服务注册与发现、配置中心、负载均衡、数据监控等。利用springboot开发的便利性简化了分布式系统基础设施开发.二、常见组件1、Eureka:服务注册与发现Netflix开发的服务发现框架,包含2个组件:Eureka Server和Eureka ClientEureka Server相当于一个注册中心,等待Eureka Client客户端的启动连接,客户端访问注册中心之后,注册中心会记录客户端的ip,把所有服务进行一个登记原创 2020-11-01 21:26:50 · 529 阅读 · 0 评论 -
实现Aop动态代理的方式
代理类:跟目标类是属于同一个继承体系的,它要么是目标类的子类,要么就是实现了一个和目标类相同的接口。主流API:1、JDK的Proxy2、CglibProxy:代理类实现了和目标类相同的接口Cglib:代理类是目标类的子类...原创 2020-09-29 21:21:35 · 125 阅读 · 0 评论 -
手写Spring之MVC实现(二)
继手写spring之Ioc、DI之后,对其中的mvc功能做了进一步操作主要是自己手动实现mvc九大组件中的其中3个,包括HandlerMapping、HandlerAdapter、ViewResovler。另外又实现了View以及ModelAndView对象代码整体结构如图基本思路流程:MVC(初始化Ioc DI操作完成之后,会初始化MVC九大组件,这里我们实现其中3个组件,初始化之后会执行service)一、initHandlerMapping()1、调用applicationContext原创 2020-09-20 16:43:17 · 108 阅读 · 0 评论 -
MVC九大组件
组件作用1MultipartResolver多文件上传的组件2LocaleResolver本地语言环境3ThemeResolver主题模板处理器4**HandlerMapping** 保存Url映射关系5**HandlerAdapter** 动态参数适配器6HandlerExceptionResolver异常拦截器7RequestToViemNameTranslator视图提取器,从request中获取viemName...原创 2020-09-10 14:36:53 · 883 阅读 · 0 评论 -
手写spring之Ioc、DI实现(一)
代码整体结构如图基本思路流程:一、new ApplicationContext() 读取配置文件 获取全类名listBeanDefinitionReader工具类:1.读取xml中配置的文件 Properties读取成键值对形式 获取scanPackage2.向下递归扫描出.class结尾的文件放入全类名list二、扫描子类及其实现的接口(接口的值用子类值存储),封装得到BeanDefinitionList集合1.doLoadBeanDefinitions()遍历全类名list 将beanN原创 2020-09-10 11:34:06 · 234 阅读 · 0 评论 -
手写spring简易版本
自定义几个注解 用servlet来模拟一个spring,代码结构如下:大体代码逻辑如下:完整代码我发布在github:https://github.com/yangzhenyan/spring_1.git@YController@YRequestMapping("item")public class ItemController { @YAutowired private ItemService itemService; private ItemService item原创 2020-09-03 17:46:14 · 227 阅读 · 0 评论 -
Spring之@Profile注解
@Profile注解 可以实现根据设定的环境要求来注册bean——注解在方法上会根据对应要求注入bean——注解在类上,若类环境符合要求,则注入方法上也对应环境的bean;若类环境不符合要求,整个类中的bean都不会被注入配置类:@Configuration //告诉spring这是个配置类@Profile("dev")public class SpringConfig { @Profile("test") //设定Person在test环境下才注册 @Bean pub原创 2020-08-19 11:26:06 · 330 阅读 · 0 评论 -
Spring之@Qualifier和@Autowired注解
@Qualifier注解和@Autowired一同使用,表示指定需要装配的组件的id @Qualifier("person02") @Autowired private PersonService personService;原创 2020-08-17 16:52:38 · 356 阅读 · 0 评论 -
Spring之@Value注解&@PropertySource
@Value注解作用于实体类上,为属性赋值可以赋值的形式:1、基本数值2、#{ }3、${ } 配置文件里的属性取值配置类:@Configuration //告诉spring这是个配置类public class SpringConfig { @Bean public Person person01() { System.out.println("person01..被创建放入ioc容器..."); return new Person();原创 2020-08-17 16:10:18 · 270 阅读 · 0 评论 -
bean的生命周期
一、@Bean指定初始化销毁方法配置类:@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")public class SpringConfig { @Bean(initMethod = "init",destroyMethod = "destroy") public User user(){ System.out.println("user..被创建放入ioc容器。。。");原创 2020-08-10 15:51:15 · 145 阅读 · 0 评论 -
Spring之@Import注解
@Import 注解 快速的导入一个组件到容器中,组件id默认是全类名假设我们要导入一个User类:public class User {}配置类里:@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")@Import(User.class) //快速导入User对象到ioc容器中public class SpringConfig { @Bean public Person person01(原创 2020-08-09 17:32:02 · 185 阅读 · 0 评论 -
Spring之@Conditional注解
配置类:@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")public class SpringConfig { /** * @Conditional 按照条件注入bean * 如果系统是windows则注入该bean */ @Conditional(WindowsCondition.class) @Bean public Person person01(原创 2020-08-09 17:02:20 · 114 阅读 · 0 评论 -
Spring配置类and配置文件(@Configuration和@Bean注解)
加入依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.5.RELEASE</version> </depen原创 2020-08-08 11:46:11 · 632 阅读 · 0 评论 -
Spring之@ComponentScan注解
在配置类中:@Configuration //告诉spring这是个配置类//扫描com.spring包下的@Service、@Controller、@Repository、@Component (interface文件加了注解注入不进去)//也可定义过滤@ComponentScan(value = "com.spring",excludeFilters = { @ComponentScan.Filter(type = FilterType.ANNOTATION,classes =原创 2020-08-08 12:37:38 · 208 阅读 · 0 评论 -
Spring之@Scope注解
xml文件中: <bean id="person" class="com.spring.bean.Person" scope="prototype"> <property name="age" value="20"></property> <property name="name" value="小杨"></property> </bean>配置类中:@Configuration原创 2020-08-08 21:21:09 · 285 阅读 · 0 评论 -
Spring之@Lazy注解
@Lazy 懒加载(即延迟加载)只针对单实例,加了这个注解,在ioc启动的时候不会创建对象,在获取bean对象的时候才去创建对象,但是对象还是只会创建一次@Configuration //告诉spring这是个配置类@ComponentScan(value = "com.spring")public class SpringConfig { /** * singleton 单实例的(默认) * prototype 多实例的 */ @Scope @原创 2020-08-08 21:42:08 · 356 阅读 · 0 评论