2、Springboot入门-整合篇

目录

 

1、springboot缓存

2、springboot消息队列

3、springboot与检索

4、springboot与分布式

5、springboot与服务监控


1、springboot缓存

注解式缓存:将方法的运行结果进行缓存;以后再要相同的数据,直接从缓存中获取,不用调用方法; * CacheManager管理多个Cache组件的,对缓存的真正CRUD操作在Cache组件中,每一个缓存组件有自己唯一一个名字;

 原理:

1、自动配置类;CacheAutoConfiguration *

2、缓存的配置类 

org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration org.springframework.boot.autoconfigure.cache.JCacheCacheConfiguration org.springframework.boot.autoconfigure.cache.InfinispanCacheConfiguration org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration

......

org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration【默认】

3、哪个配置类默认生效:SimpleCacheConfiguration;

4、给容器中注册了一个CacheManager:ConcurrentMapCacheManager

5、可以获取和创建ConcurrentMapCache类型的缓存组件;他的作用将数据保存在ConcurrentMap中;

核心:

1)、使用CacheManager【ConcurrentMapCacheManager】按照名字得到Cache【ConcurrentMapCache】组件

2)、key使用keyGenerator生成的,默认是SimpleKeyGenerator

常用缓存注解:

二、快速体验缓存
     步骤:
        1、开启基于注解的缓存 @EnableCaching
        2、标注缓存注解即可
           @Cacheable
           @CacheEvict
           @CachePut
 默认使用的是ConcurrentMapCacheManager==ConcurrentMapCache;将数据保存在   ConcurrentMap<Object, Object>中
 开发中使用缓存中间件;redis、memcached、ehcache;
 三、整合redis作为缓存
 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
  1、安装redis
  2、引入redis的starter
  3、application.yml配置redis链接地址
  4、测试缓存
     原理:CacheManager===Cache 缓存组件来实际给缓存中存取数据
     1)、引入redis的starter,容器中保存的是 RedisCacheManager;
     2)、RedisCacheManager 帮我们创建 RedisCache 来作为缓存组件;RedisCache通过操作redis缓存数据的
     3)、默认保存数据 k-v 都是Object;利用序列化保存;如何保存为json
            1、引入了redis的starter,cacheManager变为 RedisCacheManager;
            2、默认创建的 RedisCacheManager 操作redis的时候使用的是 RedisTemplate<Object, Object>
            3、RedisTemplate<Object, Object> 是 默认使用jdk的序列化机制
      4)、自定义CacheManager;

2、springboot消息队列

3、springboot与检索

3、springboot与安全

使用步骤:

 1、引入SpringSecurity;
 2、编写SpringSecurity的配置类;@EnableWebSecurity   extends WebSecurityConfigurerAdapter
 3、控制请求的访问权限:
         configure(HttpSecurity http) {
              http.authorizeRequests().antMatchers("/").permitAll()
                  .antMatchers("/level1/**").hasRole("XXX")
         }
 4、定义认证规则:
         configure(AuthenticationManagerBuilder auth){
              auth.inMemoryAuthentication()
                  .withUser("zhangsan").password("123456").roles("VIP1","VIP2")
         }
 5、开启自动配置的登陆功能:
         configure(HttpSecurity http){
              http.formLogin();
         }
 6、注销:http.logout();
 7、记住我:Remeberme();

4、springboot与分布式

将服务提供者注册到注册中心

生产者:
1、引入dubbo和zkclient相关依赖
2、配置dubbo的扫描包和注册中心地址
3、使用dubbo的@Service发布服务

消费者:

1、引入依赖,
2、配置dubbo的注册中心地址
3、引用服务dubbo的@Reference注解注入接口,必须有和生产者相同的接口

消费者入口类要配置发现服务:

@EnableDiscoveryClient //开启发现服务功能、@LoadBalanced //使用负载均衡机制

使用@Autowired
    RestTemplate restTemplate;进行远程通信,因为springcloud是基于http实现,

远程调用:String s = restTemplate.getForObject("http://PROVIDER-TICKET/ticket", String.class);

5、springboot与服务监控

监控的各项端点有:端点也可进行定制,通过endpoints+端点名+属性名来设置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值