<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java专场]]></title><description><![CDATA[专研java领域知识点，欢迎大家相互交流]]></description><link>https://blog.csdn.net/weixin_46737313</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; weixin_46737313]]></copyright><item><title><![CDATA[SpringCloud框架面试专题（初级-中级）-第三节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131236852</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131236852</guid><author>weixin_46737313</author><pubDate>Thu, 15 Jun 2023 22:14:27 +0800</pubDate><description><![CDATA[通过引入Spring Cloud Bus依赖，并配置消息中间件的相关信息，微服务可以使用Spring Cloud Bus发送和接收消息，从而实现服务间的消息传递和事件驱动。Spring Cloud中可以使用分布式事务管理框架，如Spring Cloud Alibaba中的Seata，来实现分布式事务的管理和控制，确保多个节点上的数据库操作在整个事务中保持一致性。服务提供者可以将自己的服务注册到Eureka服务器上，而服务消费者可以从Eureka服务器获取服务注册表，并根据服务的名称来发现和访问所需的服务。]]></description><category></category></item><item><title><![CDATA[SpringCloud框架面试专题（初级-中级）-第二节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131166886</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131166886</guid><author>weixin_46737313</author><pubDate>Mon, 12 Jun 2023 13:36:13 +0800</pubDate><description><![CDATA[它通过在每个服务的请求中添加唯一的跟踪标识，将整个分布式系统的请求进行串联，并记录每个服务的处理时间和调用关系，从而提供了全局视图和细粒度的性能监控。同时，它还可以将事件（如Git仓库的提交、服务实例的重启等）广播给所有的微服务实例，实现事件的分发。它提供了断路器模式，通过在服务调用链中插入断路器来隔离故障的服务，避免故障的传递，从而实现服务的降级。当服务的错误率或响应时间超过预设的阈值时，服务熔断将暂时停止对该服务的调用，并快速返回预设的错误响应，以避免等待超时或者错误的结果传递给调用方。]]></description><category></category></item><item><title><![CDATA[SpringCloud框架面试专题（初级-中级）-第一节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131151160</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131151160</guid><author>weixin_46737313</author><pubDate>Sun, 11 Jun 2023 11:03:44 +0800</pubDate><description><![CDATA[注解修饰需要进行容错处理的方法。综上所述，Spring Cloud Netflix Eureka和Ribbon在微服务架构中扮演着重要角色，通过服务注册与发现和负载均衡的功能，实现了服务间的解耦、动态调用和负载均衡，为构建可伸缩、弹性和高可用的分布式系统提供了基础设施支持。Spring Cloud是一个用于构建分布式系统的开发工具集合，它基于Spring Boot框架，提供了一系列的开箱即用的解决方案，用于快速开发分布式系统的常见功能，例如服务注册与发现、负载均衡、断路器、配置管理、消息总线等。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第十节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131013396</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131013396</guid><author>weixin_46737313</author><pubDate>Fri, 02 Jun 2023 20:18:04 +0800</pubDate><description><![CDATA[使用Netflix Eureka：Netflix Eureka是一种基于REST的服务注册与发现组件，它允许各个微服务实例向注册中心注册自己的信息，并通过查询注册中心获取其他微服务的信息。在Spring Boot项目中，可以通过引入Netflix Zuul的相关依赖和配置路由规则，来实现微服务的网关功能。使用Zookeeper：Zookeeper是一个开源的分布式协调服务，它提供了高可用性和一致性的分布式数据管理能力，可以用于实现服务注册与发现。它提供了一些额外的功能和扩展，可以更灵活地生成接口文档。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第九节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131013138</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131013138</guid><author>weixin_46737313</author><pubDate>Fri, 02 Jun 2023 19:59:29 +0800</pubDate><description><![CDATA[Kafka和Pulsar支持流式处理、复杂的消息转换和Kafka协议，RabbitMQ支持多种消息模式和AMQP协议，ActiveMQ支持JMS规范和多种传输协议。异步消息队列：常用的消息队列中间件，如RabbitMQ、Apache Kafka和ActiveMQ等，可以用于实现异步消息的传递和处理。可用性和容错性：Kafka和Pulsar具有分布式的、高可用的架构，可以在节点故障时保持服务的可用性。它具有低延迟、高吞吐量和可持久化的特性，支持多种消息传递模式和协议，如发布/订阅、队列和Kafka协议。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第八节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131003771</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131003771</guid><author>weixin_46737313</author><pubDate>Fri, 02 Jun 2023 11:41:50 +0800</pubDate><description><![CDATA[使用自定义的starter时，只需在目标项目的Maven或Gradle配置文件中添加starter的依赖即可，Spring Boot会自动加载starter的自动配置，并集成相应的功能。根据具体需求和框架的特性，选择合适的熔断框架，并进行相应的配置和逻辑实现。根据具体的需求和场景，选择适合的框架，并进行相应的配置和开发。通过自定义starter，您可以将一组相关的依赖项和配置打包成一个模块，方便在不同的项目中复用和集成，提高开发效率和代码的可维护性。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第七节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/131002140</link><guid>https://blog.csdn.net/weixin_46737313/article/details/131002140</guid><author>weixin_46737313</author><pubDate>Fri, 02 Jun 2023 11:27:47 +0800</pubDate><description><![CDATA[在Spring Boot中实现多租户架构时，你可以根据具体的需求和情况选择适合的多租户架构模式，并结合相应的技术实现。Spring Cloud：Spring Cloud是一个基于Spring Boot的开发工具包，提供了一系列用于构建和管理微服务的组件和模块，例如服务注册与发现、负载均衡、熔断、配置管理等。以上是一些常见的分布式缓存框架的示例，你可以根据具体的需求和场景选择适合的框架来实现分布式缓存。以上是一些常见的分布式框架的示例，你可以根据具体的需求和场景选择适合的框架来实现分布式系统。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第六节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130977795</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130977795</guid><author>weixin_46737313</author><pubDate>Wed, 31 May 2023 22:08:50 +0800</pubDate><description><![CDATA[在generateToken()方法中，我们使用指定的密钥生成JWT，并设置JWT的过期时间和负载，然后使用HS512算法对JWT进行签名。由于使用了@GlobalTransactional注解，Seata会在方法执行前开启一个全局事务，在方法执行完成后进行提交或回滚操作，确保两个用户的余额信息在数据库中的更新操作是原子性的。在上面的示例中，我们定义了一个MyController类，其中使用@Value注解来获取名为my.property的配置信息，并在getMyProperty()方法中返回该配置信息。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第五节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130977581</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130977581</guid><author>weixin_46737313</author><pubDate>Wed, 31 May 2023 21:43:37 +0800</pubDate><description><![CDATA[在上面的示例中，我们加载了一个名为file.txt的文件，并将其转换为InputStreamResource类型，然后将其作为响应体返回给客户端。在Spring Boot中，可以使用Spring框架提供的AOP（面向切面编程）机制来实现切面编程，通过AOP可以在不修改原有代码的情况下，对系统进行横向扩展，例如添加日志、性能监控、事务管理等功能。在上面的示例中，我们通过SendGrid提供的Java SDK来发送邮件，先创建一个Mail对象，并设置相关的邮件参数，然后使用SendGrid的API来发送邮件。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第四节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130958939</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130958939</guid><author>weixin_46737313</author><pubDate>Tue, 30 May 2023 23:34:51 +0800</pubDate><description><![CDATA[Spring Boot会按照以下顺序查找配置文件：application-{profile}.properties或application-{profile}.yml（其中profile是指当前活动的配置文件），application.properties或application.yml（如果没有活动的配置文件），并且还可以使用spring.config.name和spring.config.location属性来指定其他的配置文件名称和位置。使用@PathVariable注解来获取URL路径中的参数。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第三节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130958109</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130958109</guid><author>weixin_46737313</author><pubDate>Tue, 30 May 2023 22:54:10 +0800</pubDate><description><![CDATA[总之，Spring Framework和Spring Boot Starter是Spring Boot的核心组件，它们分别提供了应用程序框架和预先配置的依赖项集合，可以帮助开发人员更加高效地开发应用程序。此外，Spring Boot还提供了Spring Boot Actuator、Spring Boot CLI和Spring Boot Test等组件，可以帮助开发人员更加便捷地进行应用程序的监控管理、开发调试和测试。在Spring Boot中实现异步处理是一种提高应用程序性能和响应能力的常用策略。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第二节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130936382</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130936382</guid><author>weixin_46737313</author><pubDate>Mon, 29 May 2023 21:09:09 +0800</pubDate><description><![CDATA[在Spring Boot中实现安全控制通常需要使用Spring Security框架，它是一个基于Spring框架的安全框架，提供了很多有用的功能和组件，如认证、授权、加密、会话管理等。Spring Boot的Actuator是一个用于监控和管理应用程序的组件，它提供了很多有用的监控指标和管理功能，可以帮助开发人员更好地了解和管理应用程序的运行状态。如果应用程序使用了缓存，Actuator可以查看缓存的状况，包括缓存的命中率、缓存的大小、缓存的过期时间等。]]></description><category></category></item><item><title><![CDATA[SpringBoot框架面试专题（初级-中级）-第一节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130935886</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130935886</guid><author>weixin_46737313</author><pubDate>Mon, 29 May 2023 20:50:01 +0800</pubDate><description><![CDATA[总的来说，Spring Boot的核心优势是简化了Spring应用程序的开发和部署过程，提高了开发人员的生产效率，同时也提供了一些内置的功能和约定，使得开发人员可以更加专注于业务逻辑的实现，而不需要关注底层技术实现的细节。根据应用程序中所包含的依赖关系和配置属性，Spring Boot会自动配置应用程序的行为，从而简化了应用程序的开发和部署过程。自动化配置：Spring Boot提供了大量的自动化配置，可以根据应用程序中使用的库和框架自动配置应用程序的行为，从而降低了应用程序的配置复杂度。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第十节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130918722</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130918722</guid><author>weixin_46737313</author><pubDate>Sun, 28 May 2023 22:38:55 +0800</pubDate><description><![CDATA[在上面的例子中，我们定义了一个UserController类，其中包含了一个addUser方法，该方法接收三个参数，分别为字符串类型的username、整型的age和自定义类型的Address。在上面的例子中，我们定义了一个UserController类，其中包含了一个addUser方法，该方法接收一个User类型的参数，用于新增用户信息。在上面的例子中，我们定义了一个UserController类，其中包含了一个addUser方法，该方法接收一个User类型的参数，用于新增用户信息。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第九节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130918511</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130918511</guid><author>weixin_46737313</author><pubDate>Sun, 28 May 2023 22:22:58 +0800</pubDate><description><![CDATA[Spring MVC框架中的参数校验可以使用javax.validation.constraints包中的注解来实现，这些注解提供了一些常见的数据校验规则，如@NotNull、@NotEmpty、@Size、@Pattern等。在上面的例子中，我们定义了一个User类，其中包含了一个日期类型的字段birthday。在上面的例子中，我们定义了一个UserController类，其中包含了一个addUser方法，该方法接收三个参数，分别为字符串类型的username、整型的age和自定义类型的Address。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第八节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130906502</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130906502</guid><author>weixin_46737313</author><pubDate>Sat, 27 May 2023 22:12:16 +0800</pubDate><description><![CDATA[上述代码中，我们在login()方法中使用UserService接口验证用户信息，并在验证通过后创建一个名为“user”的Cookie，并将其添加到响应中。上述代码中，我们在login()方法中使用UserService接口验证用户信息，并将验证通过的用户信息存储到UserContext类中。在logout()方法中，我们清除当前线程关联的用户信息。在validate()方法中，我们使用ValidationUtils类中的方法来对表单数据进行校验，如果校验失败，则使用Errors对象来记录错误信息。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第七节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130906306</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130906306</guid><author>weixin_46737313</author><pubDate>Sat, 27 May 2023 21:46:26 +0800</pubDate><description><![CDATA[上述代码中，我们实现了WebMvcConfigurer接口并重写了其中的addInterceptors()方法，使用registry对象添加我们自定义的MyInterceptor拦截器，并使用addPathPatterns()方法指定需要拦截的请求路径，使用excludePathPatterns()方法指定不需要拦截的请求路径。上述代码中，@RequestParam注解将请求中的名为“query”的参数绑定到方法参数中的query变量，这样就可以在方法中获取该参数的值了。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第六节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130894849</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130894849</guid><author>weixin_46737313</author><pubDate>Fri, 26 May 2023 22:33:32 +0800</pubDate><description><![CDATA[通过自定义视图解析器，我们可以实现更加灵活的视图解析逻辑，例如返回非常规的视图实现、根据请求路径动态选择视图等。全局异常处理器可以处理所有请求中抛出的异常，包括控制器方法中的异常、过滤器中的异常、拦截器中的异常等。总之，Spring MVC框架中的Servlet API支持是一种非常有用的机制，可以帮助我们在Spring MVC应用程序中使用Servlet API。类，并在控制器类中添加安全注解，我们可以轻松地保护Web资源，并使用身份验证、授权、会话管理、密码加密、角色管理等安全功能。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第五节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130894533</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130894533</guid><author>weixin_46737313</author><pubDate>Fri, 26 May 2023 22:09:42 +0800</pubDate><description><![CDATA[通过使用内置的注解或自定义的注解，我们可以轻松地对JavaBean的属性进行验证，从而避免在控制器中编写冗长的验证代码。总之，Spring MVC框架中的消息转换器是一种非常有用的机制，可以帮助开发人员轻松地处理HTTP请求和响应中的数据。通过使用内置的消息转换器或自定义的消息转换器，我们可以轻松地将请求和响应中的消息转换为Java对象，从而更加方便地处理数据。总之，Spring MVC框架中的AOP支持是一种非常强大的机制，可以帮助开发人员在不修改原始类代码的情况下，向类添加新的行为。]]></description><category></category></item><item><title><![CDATA[SpringMVC框架面试专题（初级-中级）-第四节]]></title><link>https://blog.csdn.net/weixin_46737313/article/details/130877130</link><guid>https://blog.csdn.net/weixin_46737313/article/details/130877130</guid><author>weixin_46737313</author><pubDate>Thu, 25 May 2023 23:12:15 +0800</pubDate><description><![CDATA[在这个例子中，我们定义了一个MyService的服务类，其中getMyEntityById方法使用@Cacheable注解将方法返回值缓存起来，saveMyEntity方法使用@CachePut注解更新缓存中的数据，deleteMyEntityById方法使用@CacheEvict注解清除缓存中的数据。需要注意的是，这个例子中的安全策略非常简单，只是使用了内存中的用户信息进行认证，实际应用中需要根据实际情况选择更加安全的认证方式，例如使用数据库中的用户信息进行认证，或者使用加密算法对密码进行加密等。]]></description><category></category></item></channel></rss>