• [问题求助] 【DevCloud】【项目构建功能】使用基于springboot的web项目模板构建maven失败
    【功能模块】DevCloud的代码构建【操作步骤&问题现象】1、使用其模板,没有经过任何修改结果不通过。2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] Spring Boot集成log4j日志
    一、 引入log4j依赖在创建Spring Boot工程时,我们引入了spring-boot-starter, 该依赖 默认的日志框架Logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖:二、 配置log4j.properties在引入了log4j依赖之后,只需要在src/main/resources目录下加入log4j.properties配置文件,就可以开始对应用的日志进行配置使用。开发环境 控制台输出
  • [技术干货] springboot2.0整合logback
    一、开发环境开发环境• JDK 8• Spring Boot 2.0. 9 RELEASE• Maven• Windows 10• IDEA 20 20 . 3Spring Boot默认集成了Logback,可以开箱即用, 不需要再次引入 spring-boot-starter-logging 依赖 , 因为 Spring Boot启动 时加载 spring-boot-starter ,而 spring-boot-starter 包含了 spring-boot-starter-logging,所以Spring Boot就默认集成了Logback 。2、 配置信息在resource下创建logback-spring.xml文件然后在yml中配置logging.config=classpath:log/logback-spring.xmllogging.path=D:/nmyslog/nmys最后将下面的代码复制到logback-spring.xml里。<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --><!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --><!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> < configuration scan =" true " scanPeriod =" 10 seconds "><!--<include resource="org/springframework/boot/logging/logback/base.xml"/> -->< contextName > Logback For Boss </ contextName ><!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->< property name =" log.path " value =" F:/locakback " /><!-- 定义日志文件 输入位置 -->< property name =" logDir " value =" F:/logbak " /><!-- 日志最大的历史 30天 -->< property name =" maxHistory " value =" 30 " /><!-- 控制台输出日志 -->< appender name =" STDOUT " class =" ch.qos.logback.core.ConsoleAppender ">< encoder >< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >< charset class =" java.nio.charset.Charset "> UTF-8 </ charset ></ encoder ></ appender ><!-- ERROR级别日志 -->< appender name =" ERROR "class =" ch.qos.logback.core.rolling.RollingFileAppender ">< filter class =" ch.qos.logback.classic.filter.LevelFilter ">< level > ERROR </ level >< onMatch > ACCEPT </ onMatch >< onMismatch > DENY </ onMismatch ></ filter >< rollingPolicyclass =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">< fileNamePattern > ${logDir}\%d{yyyyMMdd}\error.log </ fileNamePattern >< maxHistory > ${maxHistory} </ maxHistory ></ rollingPolicy >< encoder >< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger -%msg%n </ pattern >< charset class =" java.nio.charset.Charset "> UTF-8 </ charset ></ encoder >< append > false </ append >< prudent > false </ prudent ></ appender ><!-- WARN级别日志 -->< appender name =" WARN "class =" ch.qos.logback.core.rolling.RollingFileAppender ">< filter class =" ch.qos.logback.classic.filter.LevelFilter ">< level > WARN </ level >< onMatch > ACCEPT </ onMatch >< onMismatch > DENY </ onMismatch ></ filter >< rollingPolicyclass =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">< fileNamePattern > ${logDir}\%d{yyyyMMdd}\warn.log </ fileNamePattern >< maxHistory > ${maxHistory} </ maxHistory ></ rollingPolicy >< encoder >< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >< charset class =" java.nio.charset.Charset "> UTF-8 </ charset ></ encoder >< append > false </ append >< prudent > false </ prudent ></ appender ><!-- INFO级别日志 -->< appender name =" INFO "class =" ch.qos.logback.core.rolling.RollingFileAppender ">< filter class =" ch.qos.logback.classic.filter.LevelFilter ">< level > INFO </ level >< onMatch > ACCEPT </ onMatch >< onMismatch > DENY </ onMismatch ></ filter >< rollingPolicyclass =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">< fileNamePattern > ${logDir}\%d{yyyyMMdd}\info.log </ fileNamePattern >< maxHistory > ${maxHistory} </ maxHistory ></ rollingPolicy >< encoder >< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >< charset class =" java.nio.charset.Charset "> UTF-8 </ charset ></ encoder >< append > false </ append >< prudent > false </ prudent ></ appender ><!-- DEBUG级别日志 -->< appender name =" DEBUG "class =" ch.qos.logback.core.rolling.RollingFileAppender ">< filter class =" ch.qos.logback.classic.filter.LevelFilter ">< level > DEBUG </ level >< onMatch > ACCEPT </ onMatch >< onMismatch > DENY </ onMismatch ></ filter >< rollingPolicyclass =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy ">< fileNamePattern > ${logDir}\%d{yyyyMMdd}\debug.log </ fileNamePattern >< maxHistory > ${maxHistory} </ maxHistory ></ rollingPolicy >< encoder >< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%n </ pattern >< charset class =" java.nio.charset.Charset "> UTF-8 </ charset ></ encoder >< append > false </ append >< prudent > false </ prudent ></ appender ><!--文件日志, 按照每天生成日志文件 -->< appender name =" FILE " class =" ch.qos.logback.core.rolling.RollingFileAppender ">< rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy "><!--日志文件输出的文件名-->< FileNamePattern > ${logDir}/%d{yyyyMMdd}/boss.%d{yyyy-MM-dd}.log </ FileNamePattern ><!--日志文件保留天数-->< MaxHistory > 30 </ MaxHistory ></ rollingPolicy >< encoder class =" ch.qos.logback.classic.encoder.PatternLayoutEncoder "><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->< pattern > %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </ pattern ></ encoder ><!--日志文件最大的大小-->< triggeringPolicy class =" ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy ">< MaxFileSize > 10MB </ MaxFileSize ></ triggeringPolicy ></ appender ><!-- 异步输出 -->< appender name =" dayLogAsyncAppender " class =" ch.qos.logback.classic.AsyncAppender ">< includeCallerData > true </ includeCallerData ><!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->< discardingThreshold > 0 </ discardingThreshold ><!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->< queueSize > 512 </ queueSize >< appender-ref ref =" FILE "/></ appender ><!--专为 spring 定制-->< logger name =" org.springframework " level =" info "/><!-- show parameters for hibernate sql 专为 Hibernate 定制 -->< logger name =" org.hibernate.type.descriptor.sql.BasicBinder " level =" TRACE " />< logger name =" org.hibernate.type.descriptor.sql.BasicExtractor " level =" DEBUG " />< logger name =" org.hibernate.SQL " level =" DEBUG " />< logger name =" org.hibernate.engine.QueryParameters " level =" DEBUG " />< logger name =" org.hibernate.engine.query.HQLQueryPlan " level =" DEBUG " /><!--myibatis log configure--><!--<logger name="com.apache.ibatis" level="TRACE"/><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/>--><!-- root级别 DEBUG -->< root level =" INFO "><!-- 控制台输出 -->< appender-ref ref =" STDOUT " /><!-- 文件输出 -->< appender-ref ref =" ERROR " />< appender-ref ref =" INFO " />< appender-ref ref =" WARN " />< appender-ref ref =" DEBUG " /></ root ></ configuration >大工告成!
  • [技术干货] Spring Boot 项目开发环境搭建
    方式1:官网配置生成第一步:进入Spring官网https://spring.io/  进来后是这个页面第二步:选中Projects下拉菜单中的Spring Initializr选项  点击进入第三步:填写project信息  选择项目管理工具,语言,Spring Boot版本,项目信息填写等等,傻瓜式地选择填写就完事。  项目需要哪方面的组件依赖,在右侧搜索添加就行。第四步:点击CENERATE  点击后会下载一个项目压缩包,减压到开发工具(我用的是IDEA)的工作目录,然后在工具中导入项目即可。方式2:IDEA中生成  Idea 集成了 https://start.spring.io/,可以在 idea 中选择配置并生成.第一步:新建项目,选择Spring Initlalizr  如下  Next第二步:填写protect信息  这一步跟官网生成时,填写的东西大同小异,按需填写就行  Next第三步:选择需要的组件依赖  Next第四步:填写项目名称,项目地址  Finish  创建完成!    
  • [技术干货] springBoot 部署更新失败,导致服务器拒绝请求
  • [eSDK] SMC2.0集成到现有Spring boot web应用中,调用smc2.0的接口文档用哪个呀?
    Java (Spring boot ) 调用smc2.0的接口文档用哪个呀?
  • [问题求助] 传统tomcat启动服务与springboot启动内置tomcat服务的区别
    传统tomcat启动服务与springboot启动内置tomcat服务的区别
  • [问题求助] cse集成springboot web后开启TLS通信不生效
    cse集成springboot web功能,rest.address端口号和server.port保持一致。配置TLS通信,rest.address改成0.0.0.0:8080?sslEnabled=true。这时候打开页面,不管是访问静态资源还是访问后台接口还是走的http才能请求通过,而不是通过https,有没有大神指导下是什么原因
  • [全栈开发者] 【学习笔记】springboot使用kafka收发消息
    springboot使用kafka收发消息参考:https://www.cnblogs.com/lixianguo/p/13254915.html实现实体分离的序列化和反序列化操作springboot里建立模组maven分别建立consumer和producer以及common公共模块对consumer和producer都建立springboot启动类common的application-common.yml全局配置spring:  kafka:    #kafka配置    bootstrap-servers: localhost:9092    producer:      retries: 0      # 每次批量发送消息的数量      batch-size: 16384      buffer-memory: 33554432      # 指定消息key和消息体的编解码方式      key-serializer: org.apache.kafka.common.serialization.StringSerializer      value-serializer: org.apache.kafka.common.serialization.StringSerializer    consumer:      # 指定默认消费者group id      group-id: test-consumer-group      auto-offset-reset: earliest      enable-auto-commit: true      auto-commit-interval: 5000      # 指定消息key和消息体的编解码方式      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer    #自己定义的主题名称,在微服务中使用Value注解注入调用,如果kafka中没有该主题,则会自动创建    template:      default-topic: springkafka  #    topic:#      userTopic: springkafka特别注意配置producer的application.ymlserver:  port: 8088spring:  application:    name: kafka-producer  profiles:    active: common  kafka:    consumer:      auto-offset-reset: latest      enable-auto-commit: true      group-id: consumer      bootstrap-servers: ${spring.kafka.producer.bootstrap-servers}    producer:      bootstrap-servers: localhost:9092配置consumer的application.ymlserver:  port: 8089spring:  application:    name: kafka-consumer  profiles:    active: common  kafka:    consumer:      auto-offset-reset: latest      enable-auto-commit: true      group-id: consumer      bootstrap-servers: ${spring.kafka.producer.bootstrap-servers}    producer:      bootstrap-servers: localhost:9092消息分发客户端通过kafka直接进行消息接收,从而实现消息的分发  参考Spring Cloud Data Flow 的Message类及定义内容。  所有消息都会带有ClassName,如前面文件中的数据表,这明确表达了这个消息是什么对象,后续的用户操作是什么也很明确。RESTFul规范中,可以返回用户可以选择的所有下一步操作(Actions),增加灵活性。批量获取数据分发配置详解批量并发:配置文件:#kafka配置信息kafka:  producer:    bootstrap-servers: 10.161.11.222:6667,10.161.11.223:6667,10.161.11.224:6667    batch-size: 16785                                   #一次最多发送数据量    retries: 1                                          #发送失败后的重复发送次数    buffer-memory: 33554432                             #32M批处理缓冲区    linger: 1  consumer:    bootstrap-servers: 10.161.11.222:6667,10.161.11.223:6667,10.161.11.224:6667    auto-offset-reset: latest                           #最早未被消费的offset earliest    max-poll-records: 3100                              #批量消费一次最大拉取的数据量    enable-auto-commit: false                           #是否开启自动提交    auto-commit-interval: 1000                          #自动提交的间隔时间    session-timeout: 20000                              #连接超时时间    max-poll-interval: 15000                            #手动提交设置与poll的心跳数,如果消息队列中没有消息,等待毫秒后,调用poll()方法。如果队列中有消息,立即消费消息,每次消费的消息的多少可以通过max.poll.records配置。    max-partition-fetch-bytes: 15728640                 #设置拉取数据的大小,15M  listener:    batch-listener: true                                #是否开启批量消费,true表示批量消费    concurrencys: 3,6                                   #设置消费的线程数    poll-timeout: 1500                                  #只限自动提交,有关配置earliest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费 latest 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据 Java代码(并发、批量获取)Kafka消费者配置类 批量获取关键代码: ①factory.setBatchListener(true); ②propsMap.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG,50); 并发获取关键代码: factory.setConcurrency(concurrency);
  • [Java] Spring boot 的核心文件
    Spring boot 有两种类型的配置文件:application 和 bootstrap;application配置是应用级别的,是当前应用的配置文件;bootstrap配置文件是系统级别的,用来加载外部配置,也可以定义系统不会变化的属性;bootstrap文件的加载先于application。
  • [Java] Spring boot
    Spring boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
  • [问题求助] springboot集成CSE
    springboot集成CSE,改造接口,看帖子里面配置文件都是配置的一个端口,后根据路径访问不同接口;这个能在配置文件里面配置多个端口对应不同接口吗?
  • [技术干货] 【深圳HDZ】王松-Spring Boot要么学?要不要先学 SSM?
          可能很多刚接触 Spring Boot 的小伙伴都会有这样的疑问,Spring Boot 要怎么学,要不要先学 SSM?今天结合自己的经验,和大家说一说我的看法,也顺便推荐几个 Spring Boot 学习资料。 1.Spring Boot 是什么       我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方式,可以减少 Servlet 的创建,但是依然不方便。      再后来,我们引入 Struts2/SpringMVC 这一类的框架,来简化我们的开发 ,和 Servlet/JSP 相比,引入框架之后,生产力确实提高了不少,但是用久了,又发现了新的问题,即配置繁琐易出错,要做一个新项目,先搭建环境,环境搭建来搭建去,就是那几行配置,不同的项目,可能就是包不同,其他大部分的配置都是一样的。      Java 总是被人诟病配置繁琐代码量巨大,这就是其中一个表现。那么怎么办?Spring Boot 应运而生,Spring Boot 是 Pivotal 团队在 2013 年开始研发的一个基于 Spring 的全新框架,试图将 Spring 中臃肿的配置进行简化,使 Java 开发更加轻量与快速,这个框架非常活跃,官方也非常重视。 Spring Boot 主要提供了如下功能:1. 为所有基于 Spring 的 Java 开发提供方便快捷的入门体验。2. 开箱即用,有自己自定义的配置就是用自己的,没有就使用官方提供的默认的。3. 提供了一系列通用的非功能性的功能,例如嵌入式服务器、安全管理、健康检测等。4. 绝对没有代码生成,也不需要XML配置。      Spring Boot 的出现让 Java 开发又回归简单,因为确确实实解决了开发中的痛点,因此这个技术得到了非常广泛的使用,大概从 2017 年年初开始,Spring Boot 基本上面试必问,现在流行的 Spring Cloud 微服务也是基于 Spring Boot,因此,所有的 Java 工程师都有必要掌握好 Spring Boot。从 Spring Boot 诞生的过程中,我们可以看到:1. Spring Boot 并非另起炉灶,而是在现有的 Spring 框架的基础上整出来的,它把 Spring 中繁琐的配置进行了简化。2. Spring Boot 降低了 Spring 家族的使用门槛,使新手更易上手 Spring 框架。      既然 Spring Boot 不是另起炉灶,那么 Spring Boot 学习要不要跳过 SSM 呢?听松哥来分析。 2.要不要跳过 SSM      这是很多人问我的一个问题,我的建议是:【不要】。      Spring Boot 基于 Spring,简单且容易上手,很多人想当然的跳过 SSM 直接上 Spring Boot。但是当我们细究 Spring Boot 中的自动化配置、条件注解、Java 配置等东西时,实在找不出太多新鲜玩意,Java 配置是 Spring3 开始提供的,条件注解 也是 Spring 中的东西,很多很多,都是 Spring 中就有的,只不过这些东西在 Spring Boot 时代大放异彩。      也就是说,即使你跳过了 SSM 直接去学习 Spring Boot,实际上还是在学习 Spring 中的东西,那既然这样,我们还不如坐下来,老老实实把 Spring 过一遍。      各个领域的开发工程师其实都会面临类似的问题,学习了一些优秀的封装框架之后,还有没有必要去学习底层?当然有必要!因为底层的东西可以让你深刻的理解你目前用的这个东西,也能让你在出问题时快速解决掉问题。      其实无论你想搞什么技术,都要有牢固的基础知识,这些牢固的基础知识就像肥沃的土壤,可以孕育出各种不同技术方向的牛人,基础掌握好了,学什么框架都快。今天你跳过 SSM 直接学了 Spring Boot,假如有一天 Spring Boot 不行了,Pivotal 团队又基于 Spring 框架搞了一个新的框架出来,那你是不是又要去学一遍?但是如果你一开始就掌握了 Spring 的各种用法,无论基于它搞出来什么样的框架,你都能快速上手。更进一步,如果你研究透了 Spring 中的 AOP、Ioc/DI,你会发现很多框架大同小异,核心思想就是这些东西,那么你在学习 Spring 之外的框架,就会容易很多。      **如果你对 SSM 还不太熟悉的话,可以在松哥公号(江南一点雨)后台分别回复 `spring`、`springmvc`、`mybatis` 获取松哥手敲 5 万余字的干货教程。** 3.都要学哪些       那么 Spring Boot 学习都要学哪些东西呢?我这里列举了一个进阶路线:1. 最基础的当然是 Spring/SpringMVC 相关的东西了。2. 搭配各种页面模版的使用,例如 Jsp/Thymeleaf/Freemarker/Groovy Templates 等。3. 和各种 SQL 数据库的整合,以及一些常见的数据持久化框架,例如 JdbcTemplate、MyBatis、Jpa 等。4. 和各种 NoSQL 数据库的整合,例如 Redis、MongoDB、Elasticsearch 等。5. 搭配安全管理相关的知识点,例如 Spring Security、Shiro 等。6. 缓存的使用,例如 JCache、Ehcache 等。7. 和消息中间件的搭配整合,如 ActiveMQ、RabbitMQ、Kafka 等。8. 数据校验/定时任务/邮件发送等。9. 各种监控的使用。10. 结合 WebSocket 的使用。11. Spring Cloud 中相关组件。12. ...      上面这些只是我列出来的一些比较常见的技术点,每个技术点都还可以延伸出很多其他的东西,大家可以结合自己的情况,按照顺序一个一个来学,这里边还涉及到很多第三方的框架,例如 Redis、MongoDB、RabbitMQ 等,Spring Boot 的出现只是让这些组件在和 Spring 家族的产品整合时变得更加方便,但是并不会简化这些组件原本的用法,所以,该学 Redis、该学 MongoDB、该学 RabbitMQ 等等,还是一个不能少。以 Redis 为例,学会了 Redis,学会了 Spring 整合 Redis,再回过头来看 Spring Boot 整合 Redis,那简直太 easy 了(**大家在公众号后台回复 redis,有松哥手敲的 redis 教程**)。      当然,学习 Spring Boot 最终我们还是奔着快速开发和微服务去的,所以,像 Docker、Spring Cloud 等技术,也是需要去了解一下的。 4.怎么学       Spring Boot 发展到今天,网上的资料和图书现在是越来越多了。在看资料学习的同时,大家也要留意以下几个点:1. 多看源码。不同于其他全新的框架源码你可能会看懵了,由于 Spring Boot 是基于 Spring 的,所以只要你 Spring 基础扎实,看 Spring Boot 源码可以说是毫无压力。如果看 Spring Boot 源码觉得有压力,那可能你 Spring 基础不牢靠,这个时候不妨放下 Spring Boot,去复习下 Spring。2. 每当学会 Spring Boot 中的一个知识点,不妨想想这个功能在 Spring 框架中要如何使用,如何配置,两边都搞懂了,互相印证,加深对一个知识点的理解。3. 多多关注 Spring Boot 的发展动态。不同于传统的框架可能一年更新一两次,Spring Boot 更新非常频繁,二次每次更新都会带来一些好玩的东西,可能会有新的 API 加入进来,也可能会有旧的 API 失效,变化大,因此多多关注,避免掉坑。      最后,我这里给大家列举几个我自己经常关注的几个资源。 4.1 官方文档       老实说,Spring Boot 的官方文档是我接触的所有官方文档中最条理清晰浅显易懂的,大家做开发,多多少少都接触过一些第三方的开放平台,很多平台的文档真是让人忍不住想吐槽,框架都做出来了,认认真真写个文档有那么难么?      不过 Spring Boot 的官方文档可以算是非常非常友好了。虽然是英文的,但是实际上对英文要求并不高,连读带猜,其实很容易明白它的含义,我一般对 Spring Boot 中某个知识点有疑问的时候,都是首选官方文档,当前最新版的官方文档地址是:- https://docs.spring.io/spring-boot/docs/2.2.4.RELEASE/reference/html      当然,如果你嫌官方文档打开慢,松哥也帮你下载好了最新版的 pdf,公众号后台回复 `springboot2.2.4` 可以获取。 4.2 Spring 官方博客       每次 Spring 或者 Spring Boot 发新版本,松哥都会去看一下新版本有哪些好玩的东西,增加了哪些内容。我不可能把源码读一遍然后总结出来它的变化,那一般是如何获取权威的第一手信息呢?关注 Spring 官方博客即可。      打开 Spring 官网,在顶部菜单里有一个选项就是 Blog,关于 Spring 家族产品的任何更新计划,更新结果,都会在这里通知到大家。             松哥也推荐大家多多关注这个 Blog,一方面能够及时接收到一手信息,另一方面还能提高英语,一举两得。宅在家,泡一壶茶,细细的品一品这个网站,真的蛮不错。      Blog 地址:- https://spring.io/blog  4.3 中文资料       说到中文资料,就不得不说松哥自己的在线教程和离线 pdf 文档了。手敲了 274 页教程,囊括了 Spring Boot2 常见的各种用法,即有离线的 pdf 供大家下载,也有在线的学习网站,这就是满满的诚意,还没下载 pdf 的小伙伴不要错过。       在线教程地址:- http://springboot.javaboy.org      离线 pdf 下载文档,在公众号后台回复 springboot 获取百度网盘地址。 4.4 学习案例       除了这些文字性的东西之外,一些在线案例也至关重要。这里给大家推荐两个仓库,这两个仓库中的所有案例都是基于 Spring Boot2 来做的。      首先就是我公众号上文章的配套案例:      GitHub 地址:https://github.com/lenve/javaboy-code-samples      Gitee 地址:https://gitee.com/lenve/javaboy-code-samples      这个仓库中的大部分案例都是针对 Spring Boot 的,而且有一个好处就是这些案例都有对应的讲解文章,每个案例都对应一个文章,岂不美哉。       另一个仓库就是我整理的比较完善的一个仓库,但是就没有对应的讲解文章了:      GitHub 地址:https://github.com/lenve/javaboy-video-samples      Gitee 地址:https://gitee.com/lenve/javaboy-video-samples 5.小结       资料贵精不贵多,关键是要动手去学。大学时候,有的同学热衷于收集各种资料,电脑硬盘塞得满满的,但是就是不学,这些资料再多也没有用。      当然,如果大家对松哥自己录制的 Spring Boot+Vue+微人事+Spring Cloud 视频教程感兴趣,也可以看看这篇文章:[Spring Boot + Vue 视频教程喜迎大结局,西交大的老师竟然都要来一套!](https://mp.weixin.qq.com/s/8FmgtWyz6HUIbF4smXQOwQ),或者加下面的微信咨询。关于作者   王松,江湖人称“松哥”出书《Spring Boot +Vue全栈开发实战》,清华大学出版社个人公众号:“江南一点雨”,2019年产出117篇原创技术干货,包含“Spring Boot系列”、“前后端分离系列”、“系列教程等”联系作者添加好友时麻烦请备注来源、公司及名称,谢谢HDZ社区—携手全球开发者 共建开放、创新、多元的开发者社区组织       HDZ是Huawei Developers Zone的英文缩写,是华为开发者生态面向全球开发者建立开放、创新、多元的开发者社区组织。      致力于帮助开发者学习提升、互动交流、挖掘机会,推动ICT、互联网等产业生态的建立和发展。      对云计算、IoT、人工智能、5G、区块链、鲲鹏、昇腾、软件开发与运维、开源等各技术领域感兴趣的开发者、软件工程师、创业者、运营人、产品人、大学生、老师等都可以参与到HDZ。      HDZ秉承开放、创新、多元的社区文化,完全由各地HDZ组织者、志愿者自发组建和领导。华为公司不直接参与HDZ组织建设和领导,只按需对HDZ社区活动提供必要的方向指导、资源支持、活动支撑等,并为各地HDZ组织者提供与全国组织者互动交流的机会。
  • [热门活动] springboot2.1.x如何整合微服务引擎CSE
    springboot2.0.X整合CSE是可以了,但是我们需要springboot2.1.X,缺发现启动一直报错,以下是错误信息:Exception in thread "main" java.lang.AbstractMethodError: org.springframework.boot.context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Zat org.springframework.context.event.GenericApplicationListenerAdapter.supportsSourceType(GenericApplicationListenerAdapter.java:81)at org.springframework.context.event.AbstractApplicationEventMulticaster.supportsEvent(AbstractApplicationEventMulticaster.java:295)at org.springframework.context.event.AbstractApplicationEventMulticaster.retrieveApplicationListeners(AbstractApplicationEventMulticaster.java:225)at org.springframework.context.event.AbstractApplicationEventMulticaster.getApplicationListeners(AbstractApplicationEventMulticaster.java:196)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:133)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:76)at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:342)at org.springframework.boot.SpringApplication.run(SpringApplication.java:305)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)at com.github.yhs0092.javachassis.demo.AppMain.main(AppMain.java:11)
  • [问题求助] cse集成springboot,请教如何关闭springboot的端口号
    cse集成springboot,发现cse的端口号8080和springboot的端口号8010都可以访问。因为cse开启了sslEnable,希望通过ssl访问cse。想关闭springboot的端口号。请问,如何关闭springboot的端口号application.properties:    server.port=8010    server.address=0.0.0.0microservice.yaml:cse:  service:    registry:      address: https://xx.xx.xx.xx:xx  rest:    address: 0.0.0.0:8080?sslEnabled=true
总条数:212 到第
上滑加载中