首页 文章 精选 留言 我的

精选列表

搜索[SpringBoot4],共10000篇文章
优秀的个人博客,低调大师

SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用

静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。 默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。 渲染Web页面在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢? 模板引擎在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。 Spring Boot提供了默认配置的模板引擎主要有以下几种: ThymeleafFreeMarkerVelocityGroovyMustacheSpring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置 当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。 Thymeleaf Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。 Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。 示例模板: <table> <thead> <tr> <th th:text="#{msgs.headers.name}">Name</td> <th th:text="#{msgs.headers.price}">Price</td> </tr> </thead> <tbody> <tr th:each="prod : ${allProducts}"> <td th:text="${prod.name}">Oranges</td> <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td> </tr> </tbody> </table> 可以看到Thymeleaf主要以属性的方式加入到html标签中,浏览器在解析html时,当检查到没有的属性时候会忽略,所以Thymeleaf的模板可以通过浏览器直接打开展现,这样非常有利于前后端的分离。 在Spring Boot中使用Thymeleaf,只需要引入下面依赖,并在默认的模板路径src/main/resources/templates下编写模板文件即可完成。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 完整项目的源码来源 技术支持1791743380

优秀的个人博客,低调大师

springCloud Finchley 实战入门(基于springBoot 2.0.3)【七 Fegin 声明式服务调用】

Fegin 介绍 spring cloud fegin ,他是基于Netflix Fegin实现得,整合了spring cloud Ribbon和spring cloud Hystrix,除了整合这两者得功能外,他还提供了了一种声明式得Web服务客户端定义方式。 快速入门 创建一个spring boot项目命名为"eureka-bussniss-service-user-client-fegin",选择server和fegin的依赖; 1532587428278.png application.yml相关配置: spring: application: name: service-user-client-fegin server: port: 9001 eureka: client: serviceUrl: defaultZone: http://peer1:8762/eureka/,http://peer2:8763/eureka/ feign: hystrix: enabled: true 项目主类EurekaBussnissServiceUserClientFeginApplication,添加@EnableEurekaClient和@EnableFeignClients注解 @SpringBootApplication @EnableEurekaClient @EnableFeignClients public class EurekaBussnissServiceUserClientFeginApplication { public static void main(String[] args) { SpringApplication.run(EurekaBussnissServiceUserClientFeginApplication.class, args); } } 我们以eureka-bussniss-service-user的服务例。在fegin项目中定义一个接口"UserFeignClient" /** * 标明feign调用的微服务名称 */ //通过@ FeignClient(“服务名”),来指定调用哪个服务。 // 比如在代码中调用了service-hi服务的“/hi”接口,还可以使用url参数指定一个URL // fallback 出现错误回调类 @FeignClient(name = "service-user",fallback = UserFallback.class) public interface UserFeignClient { /** * 对应service-user微服务中的URL * @return */ @GetMapping("/listUsers") String listUsers(); } 接着,创建一个Controller来实现对Fegin客户端的调用,使用@Autowired自动注入上面的“UserFeignClient ”实例。并且通过方法实现对service-user的服务发起调用。 @RestController public class UserFeignApi { /** * 将刚才定义的userFeignClient注入,并当成普通的接口调用即可 */ @Autowired private UserFeignClient userFeignClient; @GetMapping("/listUsersByFeign") public String ListUsers(){ String users = this.userFeignClient.listUsers(); return users; } } 方式测试fegin的负载均衡以及服务容错保护的功能,我们创建了一个UserFallback实现UserFeignClient。实现接口请求错误的反馈 @Component public class UserFallback implements UserFeignClient { @Override public String listUsers() { return "服务调用失败"; } } 包路径截图 1532588267196.png 到这里就已经基本完成了,依次启动service-user(8802,8803两个端口)、fegin。 1532588691914.png 访问fegin项目的地址http://localhost:9001/listUsersByFeign 1532588711363.png 1532588720488.png 重复请求,会发现接口数据是依次返回8802和8803的数据的。 现在把其中一个service-user服务停掉(8803),一开始当请求负载到8803这个服务实例时,因为当前的服务已经停掉了,所以接口响应显示了我们实现了UserFallback 类的返回。 1532588846177.png 再过几秒钟后,我们继续请求会发现,接口已经全部负载到了8802的服务实例了。 1532588992210.png 所以可以看到fegin已经实现了Ribbon和Hystrix的功能了。 github 项目源码 下一篇我们将实现spring cloud config分布式配置中心的组件。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册