为您找到搜索结果:3349个
9、RabbitMQ-集成Spring
spring封装RabbitMQ看官网:https://spring.io/projects/spring-amqp#learn开发时根据官网的介绍进行开发,具体的说明都有具体的声明 1、导入依赖<dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>2.1.4.RELEASE</version></dependency> 2、配置文件config.xml<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:rabbit="http://www.springframework.org/s...
34、springboot的热部署
在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署)。有以下四种情况,如何能实现热部署。 1、模板引擎在SpringBoot中开发情况下禁用模板引擎的cache页面模板改变ctrl+F9可以重新编译当前页面并生效 2、SpringLoadedSpring官方提供的热部署程序,实现修改类文件的热部署下载SpringLoaded(项目地址https://github.com/spring-projects/spring-loaded) 添加运行时参数;-javaagent:C:/springloaded-1.2.5.RELEASE.jar–noverify 3、JRebel 收费的一个热部署软件 安装插件使用即可 4、SpringBootDevtools(推荐)引入依赖 即一个web项目在修改controller之后,需要重新编译才可以进行访问在IDEA中使用...
33、springboot整合springcloud
SpringCloud是一个分布式的整体解决方案。SpringCloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,leader选举,分布式session,集群状态)中快速构建的工具,使用SpringCloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。 SpringCloud分布式开发五大常用组件服务发现——NetflixEureka 客服端负载均衡——NetflixRibbon 断路器——NetflixHystrix 服务网关——NetflixZuul 分布式配置——SpringCloudConfig 新建工程:服务发现(注册中心):Eureka此时需要引入: 配置文件server.port=8761#主机名eureka.instance.hostname=server#不做高可用不进行设置#不把本身注册在注...
32、SpringBoot-整合Dubbo
在分布式系统中,国内常用zookeeper+dubbo组合,而SpringBoot推荐使用全栈的Spring,SpringBoot+SpringCloud。 分布式系统: Zookeeper和DubboZooKeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Dubbo Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。 dockers安装zookeeper 官方运行的解释命令:启动: 整合dubbo的依赖https://github.com/alibaba/dubbo-spr...
31、springboot与任务
测试如下:进行等待三秒在进行应答@ServicepublicclassAsynService{publicvoidhello(){try{Thread.sleep(3000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("处理数据.....");}} controller类:@ControllerpublicclassAsynController{@AutowiredAsynServiceasynService;@ResponseBody@RequestMapping("/hello")publicStringhello(){asynService.hello();return"success";}}此时会有三秒的等待响应时间!!!! 但是如果工程量大的话,这样会比较麻烦@ServicepublicclassAsynService{//告诉spring这是一个异步的方法@Asyncpublicvoidhello(){try{Thread.sleep(3000)...
30、springboot与检索(2)
项目中进行整合: springboot默认使用SpringDateElasticSearch模块进行操作 查看自动配置类: SpringBoot默认支持两种技术来和ES交互“1、Jest 2、SpringDateElasticSearch @Bean@ConditionalOnMissingBeanpublicTransportClientelasticsearchClient()throwsException{TransportClientFactoryBeanfactory=newTransportClientFactoryBean();factory.setClusterNodes(this.properties.getClusterNodes());factory.setProperties(this.createProperties());factory.afterPropertiesSet();returnfactory.getObject();}privatePropertiescreateProperties...
29、springboot与检索(1)
我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。SpringBoot通过整合SpringDataElasticSearch为我们提供了非常便捷的检索功能支持; Elasticsearch是一个分布式搜索服务,提供RestfulAPI,底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也是采用了ElasticSearch作为其搜索服务, 1、使用docker下载ElasticSearch dockerrun-eES_JAVA_OPTS="-Xms256m-Xmx256m"-d-p9200:9200-p9300:9300--namees14f7e4c61f09d这里的-e是设置初始化时的内存,不设置时开启时需要较大的内存!!!测试:出现上述图文即表示服务开启成功!!! 2、Elasticsearch相关使用和用法 Elast...
28、springboot整合RabbitMQ(2)
1.1、监听队列如订单系统和库存系统订单系统下订单之后将消息存放在消息队列中库存系统需要时刻进行监听消息队列的内容,有新的订单就需要进行库存相关的操作 此时模拟监听消息队列中的Book信息 监听类:@RabbitListener监听相关的消息队列@ServicepublicclassBookService{@RabbitListener(queues="atguigu.news")publicvoidreceive(Bookbook){System.out.println("收到消息:"+book);}} 开启关于RabbitMq注解//开启基于注解RabbitMq模式@EnableRabbit@SpringBootApplicationpublicclassAmqpApplication{publicstaticvoidmain(String[]args){SpringApplication.run(AmqpApplication.class,args);}}后台的监听结果 1.2、获取消息头、消息体相关的参数importorg.springf...
27、springboot整合RabbitMQ(1)
使用dockers下载带management的版本,该版本是带web界面的,可操作性比较强 启动 第二个-p是web界面的访问地址 客户端进行访问: 账号密码均是guest 1、添加exchange(交换器):全部添加之后2、添加队列3、绑定........4、发送消息........ 再队列中查看消息 新建工程:1、自动配置的类 1.1、---有自动配置了连接工厂 1.2、---基本的配置类 封装了RabbitMq的所有配置自动配置的配置类1.3、---RabbitTemplate 给RabbitMq发送和接受消息1.4---AmqpAdmin 系统管理功能组件1.5---消息 需要将消息序列化成数组 2、单波2.1、发送消息@AutowiredRabbitTemplaterabbitTemplate;//单播(点对点)@TestpublicvoidcontextLoads(){//message需要自己定义,...
26、springboot与消息
1、大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力消息服务中两个重要概念: 2、消息代理(messagebroker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管, 消息代理保证消息传递到指定目的地。 3、消息队列主要有两种形式的目的地 1、 队列(queue):点对点消息通信(point-to-point) 2、主题(topic):发布(publish)/订阅(subscribe)消息通信 场景:............4、点对点式: -消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容,消息读取后被移出队列 -消息只有唯一的发送者和接受者,但并不是说只能有一个接收者 5、发布订阅式: - 发送者(发布者)发...
25、springboot与缓存整合Redis
默认使用ConcurrentMapCacheManager 将数据保存在下面的Map中 docker:安装Redis: 查看官方文档:添加约束 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 此时redis就引入再容器中可以查看自动配置的类:RedisAutoConfiguration.classpublicclassRedisAutoConfiguration{publicRedisAutoConfiguration(){}@Bean@ConditionalOnMissingBean(name={"redisTemplate"})publicRedisTemplate<Object,Object>redisTemplate(RedisConne...
24、springboot与缓存(2)
具体看上文!!! @ServicepublicclassEmpService{@AutowiredEmployeeMapperemployeeMapper;@Cacheable(cacheNames="e")publicEmployeegetEmp(Integerid){System.out.println("查询:"+id+"员工");Employeeemp=employeeMapper.getEmpById(id);returnemp;}@CachePut(value="e")publicEmployeeupdate(Employeeemployee){System.out.println("update。。。。");employeeMapper.updateEmp(employee);returnemployee;}} @ResponseBody@RequestMapping("/emps")publicEmployeeupdate(Employeeemployee){Employeeemp=empService.update(employee);...
23、springboot与缓存(1)
JavaCaching定义了5个核心接口,分别是CachingProvider,CacheManager,Cache,Entry和Expiry。1、CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。 一个应用可以在运行期访问多个CachingProvider。 2、CacheManager定义了创建、配置、获取、管理和控制多个唯一命名的Cache, 这些Cache存在于CacheManager的上下文中。一个CacheManager仅被一个CachingProvider所拥有。 3、Cache是一个类似Map的数据结构并临时存储以Key为索引的值。一个Cache仅被一个CacheManager所拥有。 4、Entry是一个存储在Cache中的key-value对。5、Expiry每一个存储在Cache中的条目有一个定义的有效期。一旦超过这个时间,条目为过期的状态。 一旦过期,条目将不可访问、更新和删除。缓存有效期...
20、Springboot 与数据访问(JDBC/自动配置)
简介:对于数据访问层,无论是SQL还是NOSQL,SpringBoot默认采用整合SpringData的方式进行统一处理,添加大量自动配置,屏蔽了很多设置。引入各种xxxTemplate,xxxRepository来简化我们对数据访问层的操作。对我们来说只需要进行简单的设置即可。我们将在数据访问章节测试使用SQL相关、NOSQL在缓存、消息、检索等章节测 整合最基本的JDBC数据源: pom.xml引入web、jdbc、mysql切记吧mysql的《scope》属性去掉 连接jdbc会自动装配到容器中spring:datasource:username:rootpassword:1234driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://127.0.0.1:3306/users?serverTimezone=GMT 测试: 默认使用:数据的相关配置都在: 类中1.x默认使用的是 数据源的自动配置: &nbs...
16、SpringBoot-CRUD错误处理机制(3)
出现错误以后,会来到/error请求,会被BasicErrorController 进行处理响应出去的数据是由 getErrorAttributes 得到的(AbstractErrorController的方法)protectedMap<String,Object>getErrorAttributes(HttpServletRequestrequest, booleanincludeStackTrace){WebRequestwebRequest=newServletWebRequest(request);returnthis.errorAttributes.getErrorAttributes(webRequest,includeStackTrace);} 3.1、完全来编写一个ErrorController的实现类【或者是编写AbstractErrorController的子类】,放在容器中 3.2、页面上能用的数据,或者是json返回能用的数据都是通过errorAttributes.getErrorA...