首页 文章 精选 留言 我的

精选列表

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

基于SpringBoot和Leaflet的全国省会城市风景区分布分析实践

暑假过半,相信很多家长都会带小朋友出去看世界。或许此时此刻也有家长带着孩子在路上吧。读万卷书,行万里路,美好的风景等着你去发现,等着你去探索。世界很大,中国也很多。全国34个省会城市,在这34个省会城市中,每个省会城市又有多少美丽的风景等着去发现。今天我们就来看看全国这么多的省会城市中,每个省会城市的风景区分布情况。看看你所在的省有哪些风景区呢?

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

Solon (可替换 SpringBoot)集成 Docker 实战:30分钟搞定容器化部署

作为 Java 开发者,你是否已经厌倦了 Spring Boot 容器化过程中的各种复杂配置和坑点?想要尝试更轻量、更高效的框架?那么 Solon 绝对值得你关注。今天我就带你实战 Solon 框架与 Docker 的集成,从环境准备到最终部署,全程避坑指南,让你 30 分钟内轻松搞定! 为什么选择 Solon + Docker? 在微服务架构盛行之下,应用容器化已成为标配。但传统的 Spring Boot 虽然功能强大,但在启动速度、内存占用和容器化体验上仍有优化空间。听一个老同事说,他们公司经常有1GB大小的 Spring Boot Jar 包。 Solon 的优势: 启动速度极快:Solon 应用的启动时间通常是 Spring Boot 的1/10到1/5 内存占用更小:基础镜像体积更小,运行时内存消耗更低。通常只有 Spring Boot 的1/10到1/2 配置更简洁:Docker 集成配置简单明了,减少踩坑概率 原生支持容器化:从设计之初就考虑了云原生场景 环境准备:三步搞定基础配置 在开始之前,确保你的本地环境满足以下要求: 1. 确认环境版本 JDK 版本:Solon 支持 JDK 8+,推荐使用 JDK 11 或 17 以获得更好的容器化支持 Docker 版本:Docker 20.10+,推荐使用 Docker Desktop 4.0+ Maven 版本:Maven 3.6+,确保插件兼容性 快速验证命令: java -version docker -v mvn -v 2. 创建 Solon 项目 如果你还没有 Solon 项目,可以通过网页版生成器快速创建: https://solon.noear.org/start/ 核心步骤:Docker 集成实战 1. 配置 Maven 插件 在pom.xml中添加 Docker 打包插件。这里我们使用经过验证的spotify插件: <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <!-- 镜像名称配置 --> <imageName>solon-demo</imageName> <imageTags> <imageTag>${project.version}</imageTag> <imageTag>latest</imageTag> </imageTags> <!-- 使用推荐的基础镜像 --> <baseImage>adoptopenjdk/openjdk11:jre-11.0.11_9-alpine</baseImage> <!-- 容器启动命令 --> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar", "--server.port=8080", "--drift=1"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 避坑提示: 使用 alpine 版本的 JDK 镜像可以显著减小镜像体积(如果不兼容,可以再换个别的) entryPoint 必须使用数组格式,确保参数传递正确 确保 finalName 与打包后的 jar 包名称一致 加上--drift=1表示当前环境ip会漂移的(如果有注册服务,当下线时要求不作健康检测)。这是 solon 对云原生的一种优化。 2.备选方案:使用 Dockerfile 如果你更喜欢传统的 Dockerfile 方式,可以在项目根目录创建 Dockerfile: # 使用轻量级基础镜像 FROM adoptopenjdk/openjdk11:jre-11.0.11_9-alpine # 设置工作目录 WORKDIR /app # 复制 jar 文件 COPY target/solon-demo-1.0.0.jar app.jar # 暴露端口(根据你的应用配置调整) EXPOSE 8080 # 启动应用 ENTRYPOINT ["java", "-jar", "app.jar", "--server.port=8080", "--drift=1"] 然后在 pom.xml 中配置插件使用 Dockerfile: <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <imageName>solon-demo</imageName> <dockerDirectory>${project.basedir}</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> 3. 构建和运行 构建 Docker 镜像: # 先打包应用 mvn clean package # 构建 Docker 镜像 mvn docker:build 构建成功后,验证镜像: docker images | grep solon-demo 运行容器: # 第一次运行 docker run -d -p 8080:8080 --name solon-app solon-demo # 查看运行状态 docker ps | grep solon-app # 查看日志 docker logs solon-app 容器管理命令: # 停止容器 docker stop solon-app # 重启容器 docker restart solon-app # 删除容器 docker rm solon-app 进阶技巧:优化和部署 1. 镜像标签管理和推送 为镜像打标签并推送到镜像仓库: # 打标签 docker tag solon-demo:latest your-repo/solon-demo:1.0.0 docker tag solon-demo:latest your-repo/solon-demo:latest # 推送到仓库 docker push your-repo/solon-demo:1.0.0 docker push your-repo/solon-demo:latest 2. 生产环境配置 对于生产环境,建议添加健康检查和资源限制: docker run -d \ -p 8080:8080 \ --name solon-app \ --memory=512m \ --cpus=1.0 \ solon-demo 常见问题排查 1. 容器启动后立即退出 检查应用启动日志:docker logs solon-app 确认 jar 包路径正确 验证端口是否被占用 2. 应用无法访问 检查端口映射:docker ps 确认端口映射关系 验证防火墙设置 检查应用监听的地址(确保是 0.0.0.0 而不是 127.0.0.1) 3. 镜像体积过大 使用 alpine 版本的基础镜像 多阶段构建去除构建依赖 使用 JRE 而不是完整的 JDK 总结 Solon 与 Docker 的集成相比传统框架更加轻量简洁,主要优势体现在: 配置简单:Maven 插件配置直观,减少出错概率 镜像小巧:基础镜像选择灵活,最终镜像体积更小 启动快速:容器启动速度更快,适合快速扩缩容 通过本文的实战指南,你应该能够在 30 分钟内完成 Solon 应用的 Docker 化。赶紧拿起你的 Solon 项目实践一下吧!如果在实践中遇到任何问题,欢迎在评论区交流讨论。

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

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 多租户电子商城系统

资源下载

更多资源
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应用均可从中受益。

WebStorm

WebStorm

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

用户登录
用户注册