首页 文章 精选 留言 我的

精选列表

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

SOFABoot v4.0.0-M2 发布,蚂蚁开源的基于 Springboot 的服务框架

SOFABoot 是蚂蚁金服开源的基于 Spring Boot 的研发框架,它在 Spring Boot 的基础上,提供了诸如 Readiness Check,类隔离,日志空间隔离等等能力。在增强了 Spring Boot 的同时,SOFABoot 提供了让用户可以在 Spring Boot 中非常方便地使用 SOFA 中间件的能力。 SOFABoot v4.0.0-M2现已发布,具体更新内容包括: New Features 支持 SOFARPC Actuator 支持SOFAARK 添加 isle feature 启用条件配置 Optimize 为现有代码添加单元测试 更新 codecov-action@v3 并将报告模块添加到静态测试覆盖率 更新 Guice 5.1.0 在 v3.18.0 版本中 Cerry-pick 功能和错误修复 优化 RuntimeContextBeanFactoryPostProcessor 优化 Springcloud bootstrap 日志属性 更新说明:https://github.com/sofastack/sofa-boot/releases/tag/v4.0.0-M2

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

超级全面的 SpringBoot 注解介绍,每一个用途都应该清晰

作者:riemann blog.csdn.net/qq_34371461/article/details/80571281 一、注解(annotations)列表 1、@SpringBootApplication 包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让Spring Boot扫描到Configuration类并把它加入到程序上下文。 2、@ComponentScan 组件扫描,可自动发现和装配一些Bean。 3、@Configuration 等同于Spring的XML配置文件;使用Java代码可以检查类型安全。 4、@EnableAutoConfiguration 自动配置 5、@RestController 该注解是@Controller和@ResponseBody的合集,表示这是个控制器Bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器。 6、@Autowired 自动导入。 7、@PathVariable 获取参数。 8、@JsonBackReference 解决嵌套外链问题。 9、@RepositoryRestResourcepublic 配合spring-boot-starter-data-rest使用。 二、注解(annotations)详解 1、@SpringBootApplication:申明让Spring Boot自动给程序进行必要的配置,这个配置等同于:@Configuration,@EnableAutoConfiguration和@ComponentScan三个配置。 importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication//sameas@Configuration@EnableAutoConfiguration@ComponentScanpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}} 2、@ResponseBody:表示该方法的返回结果直接写入HTTP Response Body中,一般在异步获取数据时使用,用于构建RESTful的api。 在使用@RequestMapping后,返回值通常解析为跳转路径,加上@ResponseBody后返回结果不会被解析为跳转路径,而是直接写入HTTP Response Body中。 比如异步获取json数据,加上@ResponseBody后,会直接返回json数据。 该注解一般会配合@RequestMapping一起使用。 示例代码: @RequestMapping(“/test”)@ResponseBodypublicStringtest(){return”ok”;} 3、@Controller:用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层) 一般这个注解在类中,通常方法需要配合注解@RequestMapping。 示例代码: @Controller@RequestMapping(“/demoInfo”)publicclassDemoController{@AutowiredprivateDemoInfoServicedemoInfoService;@RequestMapping("/hello")publicStringhello(Mapmap){System.out.println("DemoController.hello()");map.put("hello","fromTemplateController.helloHtml");//会使用hello.html或者hello.ftl模板进行渲染显示.return"/hello";}} 4、@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集。 示例代码: importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping(“/demoInfo2”)publicclassDemoController2{@RequestMapping("/test")publicStringtest(){return"ok";}} 5、@RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。 6、@EnableAutoConfiguration:Spring Boot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置你的Spring应用。 例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。 你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。 如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。 搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典.pdf 7、@ComponentScan:表示将该类自动发现扫描组件。 个人理解相当于,如果扫描到有@Component、@Controller、@Service等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。 我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。可以自动收集所有的Spring组件,包括@Configuration类。 如果没有配置的话,Spring Boot会扫描启动类所在包下以及子包下的使用了@Service、@Repository等注解的类。 8、@Configuration:相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。 9、@Import:用来导入其他配置类。 10、@ImportResource:用来加载xml配置文件。 11、@Autowired:自动导入依赖的bean 12、@Service:一般用于修饰service层的组件 13、@Repository:使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。 14、@Bean:用@Bean标注方法等价于XML中配置的bean。 15、@Value:注入Spring bootapplication.properties配置的属性的值。示例代码: @Value(value=“#{message}”)privateStringmessage; 16、@Inject:等价于默认的@Autowired,只是没有required属性; 17、@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 18、@Bean:相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。 19、@AutoWired:自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。 20、@Qualifier:当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者,具体使用方式如下: @Autowired@Qualifier(value=“demoInfoService”)privateDemoInfoServicedemoInfoService; 21、@Resource(name=”name”,type=”type”):没有括号内内容的话,默认byName。与@Autowired干类似的事。 搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典.pdf 三、JPA注解 1、@Entity:@Table(name=”“):表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略。 2、@MappedSuperClass:用在确定是父类的entity上。父类的属性子类可以继承。 3、@NoRepositoryBean:一般用作父类的repository,有这个注解,Spring不会去实例化该repository。 4、@Column:如果字段名与列名相同,则可以省略。 5、@Id:表示该属性为主键。 6、@GeneratedValue(strategy=GenerationType.SEQUENCE,generator= “repair_seq”):表示主键生成策略是sequence(可以为Auto、IDENTITY、native等,Auto表示可在多个数据库间切换),指定sequence的名字是repair_seq。 7、@SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1):name为sequence的名称,以便使用,sequenceName为数据库的sequence名称,两个名称可以一致。 8、@Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。 如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic。 9、@Basic(fetch=FetchType.LAZY):标记可以指定实体属性的加载方式。 10、@JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。 11、@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。 12、@OneToOne、@OneToMany、@ManyToOne:对应hibernate配置文件中的一对一,一对多,多对一。 四、SpringMVC相关注解 1、@RequestMapping:@RequestMapping(“/path”)表示该控制器处理所有“/path”的UR L请求。 RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。 用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。该注解有六个属性: params:指定request中必须包含某些参数值是,才让该方法处理。 headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。 value:指定请求的实际地址,指定的地址可以是URI Template模式 method:指定请求的method类型,GET、POST、PUT、DELETE等 consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html; produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。 2、@RequestParam:用在方法的参数前面。 3、@PathVariable:路径变量。如: RequestMapping(“user/get/{macAddress}”)publicStringgetByMacAddress(@PathVariableStringmacAddress){//dosomething;} 参数与大括号里的名字一样要相同。 五、全局异常处理 @ControllerAdvice:包含@Component。可以被扫描到。统一处理异常。 @ExceptionHandler(Exception.class):用在方法上面表示遇到这个异常就执行以下方法。 更多好文章 Java高并发系列(共34篇) MySql高手系列(共27篇) Maven高手系列(共10篇) Mybatis系列(共12篇) 聊聊db和缓存一致性常见的实现方式 接口幂等性这么重要,它是什么?怎么实现? 泛型,有点难度,会让很多人懵逼,那是因为你没有看这篇文章! 本文分享自微信公众号 - 路人甲Java(javacode2018)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

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

springmvc + springboot + mybatis java b2b2c电子商城系统源码

用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 技术解决方案 开发语言: java、j2ee 数据库:mysql JDK支持版本: JDK1.8 以上版本 核心技术:分布式、云服务、微服务、服务编排等。 核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等java B2B2C 多租户电子商城系统

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

java B2B2C Springboot电子商城系统-路由网关(zuul)

一、Zuul简介 Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。 zuul有以下功能: Authentication Insights Stress Testing Canary Testing Dynamic Routing Service Migration Load Shedding Security Static Response handling Active/Active traffic management 二、创建service-zuul工程 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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.forezp</groupId> <artifactId>service-zuul</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>service-zuul</name> <description>Demo project for Spring Boot</description> <parent> <groupId>com.forezp</groupId> <artifactId>sc-f-chapter5</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> </dependencies> </project> 在其入口applicaton类加上注解@EnableZuulProxy,开启zuul的功能: @SpringBootApplication @EnableZuulProxy @EnableEurekaClient @EnableDiscoveryClient public class ServiceZuulApplication { public static void main(String[] args) { SpringApplication.run( ServiceZuulApplication.class, args ); } } 加上配置文件application.yml加上以下的配置代码: eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ server: port: 8769 spring: application: name: service-zuul zuul: routes: api-a: path: /api-a/** serviceId: service-ribbon api-b: path: /api-b/** serviceId: service-feign 首先指定服务注册中心的地址为http://localhost:8761/eureka/,服务的端口为8769,服务名为service-zuul;以/api-a/ 开头的请求都转发给service-ribbon服务;以/api-b/开头的请求都转发给service-feign服务; 依次运行这五个工程;打开浏览器访问:http://localhost:8769/api-a/hi?name=forezp ;浏览器显示: hi forezp,i am from port:8762 打开浏览器访问:http://localhost:8769/api-b/hi?name=forezp ;浏览器显示: hi forezp,i am from port:8762 这说明zuul起到了路由的作用 三、服务过滤 zuul不仅只是路由,并且还能过滤,做一些安全验证。继续改造工程; @Component public class MyFilter extends ZuulFilter { private static Logger log = LoggerFactory.getLogger(MyFilter.class); @Override public String filterType() { return "pre"; } @Override public int filterOrder() { return 0; } @Override public boolean shouldFilter() { return true; } @Override public Object run() { RequestContext ctx = RequestContext.getCurrentContext(); HttpServletRequest request = ctx.getRequest(); log.info(String.format("%s >>> %s", request.getMethod(), request.getRequestURL().toString())); Object accessToken = request.getParameter("token"); if(accessToken == null) { log.warn("token is empty"); ctx.setSendZuulResponse(false); ctx.setResponseStatusCode(401); try { ctx.getResponse().getWriter().write("token is empty"); }catch (Exception e){} return null; } log.info("ok"); return null; } } filterType:返回一个字符串代表过滤器的类型,在zuul中定义了四种不同生命周期的过滤器类型,具体如下: pre:路由之前 routing:路由之时 post: 路由之后 error:发送错误调用 filterOrder:过滤的顺序 shouldFilter:这里可以写逻辑判断,是否要过滤,本文true,永远过滤。 run:过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问。 这时访问:http://localhost:8769/api-a/hi?name=forezp ;网页显示: token is empty //需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六 访问 http://localhost:8769/api-a/hi?name=forezp&token=22 ; 网页显示: hi forezp,i am from port:8762 java B2B2C springmvc mybatis电子商务平台源码

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

HBase+SpringBoot分布式文件存储实战(二)-HBase简介与环境部署

1 HBase简介及其在大数据生态圈的位置 行列表举例 行 / 列式数据表,即把列放在一起 列式则适合于大批量查询 2 HBase数据存储模型及与关系型数据库的区别 分布式基础理论 HBase 概念 HBase与传统数据库的区别 存储例子 HBase 存储结果 HBase 数据模型 3 Hadoop伪分布式集群安装 配置 hadoop.env.sh 的 Java 环境变量 新建一个数据存储目录

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

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

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册