SpringBoot
Ezerbel
这个作者很懒,什么都没留下…
展开
-
SpringBoot学习-part71 整合Dubbo&ZooKeeper
Zookeeper(协调远程调用)分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Dubbo(注册中心,注册服务,发现服务)Dubbo是Alibaba开源的分布式服务框架,它的最大特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦(或者最大限度地松耦合)。从服务模型的角度看,Dubbo采用的是一种非常简单的模型,要么时提供提供方提供服务,要么时消费方消费服务,所以基于这一点可以抽象出服务提供原创 2020-07-18 18:51:27 · 95 阅读 · 0 评论 -
SpringBoot学习-part70安全-记住我&定制登录页面
记住我开启记住我功能后,只要服务器不关停或丢失数据,那么很长一段时间内,用户都可以实现免登录,直到过期或注销登录。开启该功能很简单,只需要在继承WebSecurityConfigurerAdapter的类中,重写configure方法,并加入:http.rememberMe();基本的原理就是,本地会话中保存了相应的cookie,名字叫做remember-me。定制登录页面默认/login会跳转到SpringBootSecurity为我们定制的默认登录界面。welcome.html 修改头原创 2020-07-17 21:44:09 · 200 阅读 · 0 评论 -
SpringBoot学习-part69安全-权限控制&注销
找到合适的thymeleaf-extras-springsecurity版本ctrl+ 左键 进入spring-boot-starter-parent根据这些,应该导入thymeleaf-extras-springsecurity5<dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</ar原创 2020-07-17 19:27:36 · 93 阅读 · 0 评论 -
SpringBoot学习-part68 安全-登录&认证&授权
官方指导文档环境搭建加载依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.or原创 2020-07-17 16:22:46 · 189 阅读 · 0 评论 -
SpringBoot学习-part67整合三类任务
异步任务开启异步模式@EnableAsync //开启异步注解功能@SpringBootApplicationpublic class Springboot04TaskApplication { public static void main(String[] args) { SpringApplication.run(Springboot04TaskApplication.class, args); }}2)异步服务@Servicepublic cla原创 2020-07-17 12:00:27 · 120 阅读 · 0 评论 -
SpringBoot学习-part66 整合ElasticSearch操作
加载依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>SpringBoot整合代码位置原创 2020-07-17 09:10:39 · 196 阅读 · 0 评论 -
SpringBoot学习-part65 ElasticSearch简单入门
官方中文文档地址中文官方文档存入员工文档常用请求方式将 HTTP 命令由 PUT 改为 GET 可以用来检索文档,同样的,可以使用 DELETE 命令来删除文档,以及使用 HEAD 指令来检查文档是否存在。如果想更新已存在的文档,只需再次 PUT 。查询所有时,可以将文档id换为_search请求路径中增加筛选条件比如last_name192.168.101.7:9200/megacorp/employee/_search?q=last_name:Smith使用Json构造查询简单请原创 2020-07-16 08:29:21 · 97 阅读 · 0 评论 -
SpringBoot学习-part64 ElasticSearch简介与安装
docker pulldocker 运行elasticsearchXms256M 初始堆内存256MXmx256M 最大堆内存256M9200页面通信的端口9300分布式情况下,各个节点间的通信端口docker run -e ES_JAVA_OPTS="-Xms256M -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 elasticsearch:7.8.0#启动成功访问页面...原创 2020-07-16 07:09:42 · 96 阅读 · 0 评论 -
SpringBoot学习-part63 AMQP Admin管理组件
使用AmqpAdmin创建Exchange @Test public void createExchange(){ DirectExchange directExchange = new DirectExchange("amqpAdmin.exchange"); amqpAdmin.declareExchange(directExchange); System.out.println("创建完成"); }amqpAdmin创建队列 @Testpublic vo原创 2020-07-15 21:12:12 · 95 阅读 · 0 评论 -
SpringBoot学习-part62 @RabbitListener & @EnableRabbit
开启基于注解的RabbitMQ模式@EnableRabbit // 开启基于注解的RabbitMQ模式@SpringBootApplicationpublic class Springboot02AmqpApplication { public static void main(String[] args) { SpringApplication.run(Springboot02AmqpApplication.class, args); }}监听队列消原创 2020-07-15 20:52:51 · 355 阅读 · 0 评论 -
SpringBoot学习-part61 整合RabbitMQ
pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/mav原创 2020-07-15 20:20:03 · 94 阅读 · 0 评论 -
SpringBoot学习-part60 RabbitMQ 安装与测试
RabbitMQ安装Docker pullDocker内启动rabbitMQdocker run --name myrabbitmq -d -p 5672:5672 -p 15672:15672 imageId或imageName进入管理后端配置queue以及exchangequeue配置exchange配置发布消息测试Direct测试fanout测试 topic发布消息后,所有消息队列的总数加1,符合预期!消息发布后,只有news相关队列的消息数量加1符合预期!原创 2020-07-15 15:17:29 · 58 阅读 · 0 评论 -
SpringBoot学习-part59 RabbitMQ基本概念与消息分发策略
AMQP中的消息路由AMQP中消息的路由过程和JMS存在一些差别,AMQP中增加了Exchange和Binding角色。生产者发布消息到Exchange上,消息最终到达队列并被消费者接收,而Binding决定交换器的消息应该发送到哪个队列。Exchange 类型分类常用三种分发策略:direct、fanout、topic直连型-direct单播模式路由键如果和Biding中的键完全一致,则转发消息到对应队列。比如路由键为 emp 则不会转发其它的:比如emp.id或emp.salary等原创 2020-07-15 14:27:28 · 338 阅读 · 0 评论 -
SpringBoot学习-part58 RabbitMQ简介与配置
RabbitMQ简介erlang开发的AMQP(advanced message queue protocol)的开源实现。核心概念Message由消息头和消息体组成。消息体不透明,而消息头则由一些列可选的属性组合而成,这些属性包括routing-key、prority、delivery-mode(指出该消息可能需要持久存储)等。Publisher消息的生产者,也是一个向交换器发布消息的客户端应用程序。Exchange交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队原创 2020-07-15 13:36:08 · 77 阅读 · 0 评论 -
SpringBoot学习-part57 JMS & AMQP 简介
1.大多应用中,可通过消息服务中间件来提升系统的异步通信,扩展解耦能力。2.消息服务汇总两个重要概念:消息代理(message broker)目的地(destination)当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定的目的地。3.消息队列主要有两种形式的目的地。队列(queue):点对点消息通信(p2p)主题(topic):发布(publish)/订阅(subscribe)消息通信4.点对点式:每一条消息只有唯一的接受者,被接收后的消息将从消息队列中移除。5.发原创 2020-07-15 11:43:19 · 129 阅读 · 0 评论 -
SpringBoot学习-part56 自定义CacheManager
为什么要自定义RedisCacheManager当导入Redis后,SpringBoot不再使用默认的SimpleCacheManager因为Redis的配置类,会提前注入redisCacheManager启动应用查询,测试 redis 缓存 employee成功缓存,但是使用的jdk内置的序列化器,可视化很差为了能让redis使用我们指定的序列化器,必须自定义cacheManager:redis的cacheManager的具体结构构造一个RedisCacheMananger需要一个原创 2020-07-15 09:18:32 · 545 阅读 · 0 评论 -
SpringBoot学习-part55 RedisTemplate & 序列化机制
导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>redis的自动配置,注入了两个用于方便操作的模板@Configuration(proxyBeanMethods = false)@Conditi原创 2020-07-15 06:32:08 · 130 阅读 · 0 评论 -
SpringBoot学习-part54搭建redis环境与测试
linux虚拟机中,用docker,pull下来之后run起来注意redis默认端口6379安装Redis DeskTop Manager简单配置后开始测试使用:List of unsupported commands: DUMP, RESTORE, AUTH Connecting ...Connected.redis:0>append msg hello"5"redis:0>append msg world"10"redis:0>lpush 3"ERR原创 2020-07-14 21:29:23 · 174 阅读 · 0 评论 -
SpringBoot学习-part53@Caching和@CacheConfig
@Cachaing注解当我们的缓存规则比较复杂时,就可以使用这个注解/** * Group annotation for multiple cache annotations (of different or the same type). * * <p>This annotation may be used as a <em>meta-annotation</em> to create custom * <em>composed annotati原创 2020-07-14 20:31:50 · 181 阅读 · 0 评论 -
SpringBoot学习-part52使用@CacheEvict
删除数据时结合此注解@CacheEvict,可以清空对应的缓存。 @CacheEvict(cacheNames = {"emp"}/*,key = "#id"*/,allEntries = true,beforeInvocation = false) public void deleteEmp(Integer id){ System.out.println("删除员工"); //employeeMapper.deleteEmpById(id); }原创 2020-07-14 18:51:12 · 412 阅读 · 0 评论 -
SpringBoot学习-part51使用@CachePut
测试代码如下 @GetMapping("/emp") public Employee updateEmployee(Employee employee){ return employeeService.updateEmp(employee); }@EnableCaching@Servicepublic class EmployeeService { @Autowired EmployeeMapper employeeMapper; @Cacheable(原创 2020-07-14 15:42:25 · 116 阅读 · 0 评论 -
SpringBoot学习-part50自定义缓存Key生成器
元数据metadata中包含key生成器信息:@Nullableprotected Object generateKey(@Nullable Object result) { if (StringUtils.hasText(this.metadata.operation.getKey())) { EvaluationContext evaluationContext = createEvaluationContext(result); return evaluator.key(this.me原创 2020-07-14 13:14:14 · 353 阅读 · 0 评论 -
SpringBoot学习-part49缓存工作原理&Cachable运行流程
Cache的自动配置启动后根据加载的依赖,导入相应Cache配置模块缓存的配置类:org.springframework.boot.autoconfigure.cache.GenericCacheConfigurationorg.springframework.boot.autoconfigure.cache.JCacheCacheConfigurationorg.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration原创 2020-07-14 12:42:12 · 196 阅读 · 0 评论 -
SpringBoot学习-part48EnableCahcing&Cachable
开启基于注解的缓存模式被@Cachable注解修饰的方法所在的类需要使用@EnableCaching使用Cachable注解1.value:指定一个或多个Cache名,同cacheNames:@Cacheable(cacheNames={"emp"})@Cacheable(cacheNames={"emp","empC"})2.key:存储对象的keya) 使用自定义的策略,#参数名 或 #参数.属性名 的方式生成key属性名称描述示例methodName当前方法原创 2020-07-14 08:04:42 · 202 阅读 · 0 评论 -
SpringBoot学习-part47缓存进阶学习环境搭建
Departmentpackage com.ezerbelcn.springboot.bean;public class Department { private Integer id; private String departmentName; public Department() { super(); // TODO Auto-generated constructor stub } public Department(Integer id, String dep原创 2020-07-13 14:38:13 · 113 阅读 · 0 评论 -
SpringBoot学习-part46Spring缓存抽象简介
几个中重要的概念Cache缓存接口,定义缓存操作。实现有:RedisCache、EhChacheChache、ConcurrentMapChache等CacheManager缓存管理器,管理各种缓存(Cache)组件@Cacheable主要针对方法配置,能够根据方法的请求参数对结果进行缓存,可以对get方法使用@CacheEvict清空缓存,可以给删除方法加上此注解@CachePut保证方法被调用,又希望结果被缓存。可以对update方法使用此注解。@E原创 2020-07-13 12:03:06 · 90 阅读 · 0 评论 -
SpringBoot学习-part45JSR107缓存规范介绍
Java Caching 的 5 个核心接口ChacingProvider 定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期间访问多个CachingProvider。ChacheMananger 定义了创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于ChacheMananger的上下文中。一个CacheManager金杯一个CachingProvider所拥有。Cache 是一个类似于Map的数据结构,并临时存储以key为索引的值。一个C原创 2020-07-13 11:51:09 · 103 阅读 · 0 评论 -
SpringBoot学习-part44自定义场景启动器Starter
stater:这个场景需要用到的依赖是什么?如何编写自动配置?@Configuration//指定这个类是一个配置类@ConditionalOnxxx//在指定条件成立的情况下,自动配置类生效@AutoConfiureAfter//指定自动配置类的相对顺序@Bean//给容器中添加组件@EnableConfigurationProperties//结合相关xxProperties类来绑定相关的配置...原创 2020-07-13 10:05:16 · 226 阅读 · 0 评论 -
SpringBoot学习-part43事件监听机制相关测试
添加自定义的Initializer和ListenermyApplicationContextInitializer//监听IOC容器:ConfigurableApplicationContext的启动public class myApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { public myApplication原创 2020-07-10 15:51:29 · 88 阅读 · 0 评论 -
SpringBoot学习-part42原理之Run启动应用
Run方法预览:public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; Collection<SpringBootExceptionReporter> exceptionReporters = new Arr原创 2020-07-10 14:39:13 · 123 阅读 · 0 评论 -
SpringBoot学习-part41原理之创建SpringAppication
启动流程:public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { this.resourceLoader = resourceLoader; Assert.notNull(primarySources, "PrimarySources must not be null"); this.primarySources = new LinkedHashSet<>(A原创 2020-07-10 11:12:40 · 128 阅读 · 0 评论 -
SpringBoot学习-part40整合JPA
加载依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-原创 2020-07-09 22:43:02 · 128 阅读 · 0 评论 -
SpringBoot学习-part39整合MyBatis配置版
虽然注解版很方便但是无法动态编辑,所以还是要学习配置版如何使用EmployeeMapper接口//@Mapper 或 使用@MapperScan 指定扫描范围public interface EmployeeMapper { //@Select("select * from employee where id=#{id}") public Employee getEmpById(Integer id); //@Insert("insert into employee(lastN原创 2020-07-09 20:02:07 · 76 阅读 · 0 评论 -
SpringBoot学习-part38整合MyBatis注解版
加载依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-原创 2020-07-09 16:24:29 · 97 阅读 · 0 评论 -
SpringBoot学习-part37整合基本jdbc与数据源
对druid进行基本配置:@Configurationpublic class DruidConfig { //会自动将配置文件中的属性注入到数据源中 @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid(){ return new DruidDataSource(); }}全局配置文件: application.ymlspring原创 2020-07-08 16:58:11 · 113 阅读 · 0 评论 -
SpringBoot学习-part36数据访问JDBC&自动配置
1.环境依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/mav原创 2020-07-08 13:37:56 · 114 阅读 · 0 评论 -
SpringBoot学习-part35Docker部署Mysql
部署mysql按前面学到的tomcat部署方式查看mysql logs异常退出的原因应该是没有设置root用户的密码,或者允许空密码官方文档搜索mysqlhttps://hub.docker.com/这里的 MYSQL_ROOT_PASSWORD必须大写$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag创建mysql容器实例...原创 2020-07-06 20:22:46 · 89 阅读 · 0 评论 -
SpringBoot学习-part34Docker基本及Tomcat容器部署
Docker相关Docker安装yum install docker启动Dockersystemctl start dockerDocker开机启动systemctl enable docker搜索镜像docker search mysqldocker search redis下载镜像docker pull mysql查看Docker内部当前镜像数量docker images下载指定版本的mysqldocker pull mysql:5.5移除指定的镜像d原创 2020-07-05 12:51:16 · 158 阅读 · 0 评论 -
SpringBoot学习--part33玩转Linux之基本命令
开启终端ctrl+alt+t刚装ubuntu的设置超级用户sudo passwd以root身份登录,然后输入密码即可su root登录成功后,末尾标识由$变为#安装deb包(需要先cd到对应目录下)dpkg -i 软件包名.deb安装搜狗拼音出现问题:输入法切换win+space(空格)Docker相关Docker安装yum install docker启动Dockersystemctl start dockerDocker开机启动systemctl ena原创 2020-07-05 09:29:20 · 84 阅读 · 0 评论 -
SpringBoot学习-part32嵌入式Servlet容器的自动配以及初始化
createWebServerSpringBoot 会从ServletWebServerApplicationContext 中启动 createWebServer 方法,该方法会根据当前导入的Servlet类型创建相应的ServletWeb服务工厂:Jetty、Tomcat 或 Undertow。为啥这里没有Netty?private void createWebServer() { WebServer webServer = this.webServer; ServletContext se原创 2020-07-04 19:50:11 · 186 阅读 · 0 评论