import org.springframework.boot.autoconfigure.condition.*; @ConditionalOnBean // 当容器中有指定bean的条件下 @ConditionalOnClass // 当类路径下有指定类的条件下 @ConditionalOnExpression // 基于SpEL表达式作为判断条件 @ConditionalOnJava // 基于JVM版本作为判断条件 @ConditionalOnJndi // 在JNDI存在的条件下查找指…
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口调用测试和各种注释的可视化web界面.配置swagger的扫描包路径,api信息等,见配置类SwaggerConfig.项目中遇到的下列注解都由swagger提供: @Api.@ApiOperation.@ApiModel.@ApiModelProperty访问http://localhost/sw…
欢迎关注微信公众号: 小哈学Java 文章首发于个人网站: https://www.exception.site/springboot/spring-boot-model-attribute Spring Boot 2.0 中的注解 @ModelAttribute 有什么作用呢? 通常情况下,我们会将 @ModelAttribute 注解放置在 Controller 中的某个方法上,那么,如果您在请求这个 Controller 中定义的 URI 时,会首先调用这个被注解的方法,并将该方法的结果作…
概述 在Spring Boot 开篇-创建和运行一文中,介绍了如何创建一个Sprint Boot项目并且运行起来.但是运行的方式是在IDEA中直接Run起来的.还有另一中方式可以可以把Spring Boot程序运行起来,就是直接在命令行中执行jar包. 打成jar包 以往的WEB程序需要打成WAR包,部署到Tomcat上,而Spring Boot支持打包成JAR的形式,就算是JAR里面包含图片.页面等,也是支持的.另外使用JAR包的方式也方便部署到Docker上. 要想把Spring Boot打…
众所周知, spring boot打出的jar包可以通过 "java -jar xxx.jar"的方式来运行 但是在Linux中, 通过这个命令运行的话会占用该窗口, 当我们 Ctrl + C 退出窗口的同时会终止jar程序的运行 此时我们可以通过以下方式运行jar包: 新建sh文件 #!/bin/sh if [ -f "/root/jar/base.jar" ]; then java -jar /root/jar/base.jar >/root/out/ba…
Spring Boot 打成的 jar 和普通的 jar 有什么区别 ? Spring Boot 打成的 jar Spring Boot的项目终止以jar包的形式进行打包,这种jar包可以通过可以通过命令(java -jar xxx.jar)来运行的,这种jar包不能被其他项目所依赖,即使被依赖了也不能直接使用其中的类.普通的jar包,解压后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOT-INF\classes 目录下才是我们的代码,…
目录 1. 打可执行Jar包 2. 可执行Jar包内部结构 3. JarLauncher 4. 简单总结 5. 远程调试 Spring Boot有一个很方便的功能就是可以将应用打成可执行的Jar.那么大家有没想过这个Jar是怎么运行起来的呢?本篇博客就来介绍下Spring Boot可执行Jar包的运行原理. 1. 打可执行Jar包 将Spring Boot应用打成可执行Jar包很容易,只需要在pom中加上一个Spring Boot提供的插件,然后在执行mvn package即可. <build>…
Java 执行命令行命令 这个没技术含量的东西耗费了我半个多小时 String command = ....; Process process = Runtime.getRuntime().exec(command); 一个简单的命令这样执行时没问题的,但是如果参数中存在空格,那么就会出问题 会被分割为不同的参数,使用""包含起来也不行 解决方案: 使用重载的方法 String[]command = ....; Process process = Runtime.getRuntime(…
如何在 Gradle 中配置一个项目可以打包为 Spring Boot 可执行 Jar? 你首先需要添加到 org.springframework.boot 到插件中: 例如下面的代码: plugins { id 'maven-publish' id "org.asciidoctor.convert" version "2.3.0" id 'org.springframework.boot' version '2.1.4.RELEASE' } 然后应用插件,使用下面…
背景: 使用Spring Boot开发的Web项目,打包生成了一个jar包,希望能部署在Windows服务器中 尝试: 1.Spring Boot生成的jar包,可以直接用java -jar运行,但是前提是需要登录用户,而且注销用户后会退出程序,所以不可信. 2.使用计划任务,写一个bat批处理文件,里面写java -jar运行程序,然后吧bat文件作为一个计划任务运行:结果可能是因为任务启动时,系统资源未准备好,所以没有成功. 最终方案: 使用winsw winsw是一个开源项目,程序以及源码…
spring boot开发,jar包一个一个来启动太麻烦了,写一个bat文件一键启动 @echo offcd D:\workProject\bushustart cmd /c "title EurekaServer- && java -jar EurekaServer-0.0.1-SNAPSHOT.jar"start cmd /c "title busms- && java -jar busms-1.5.9.RELEASE.jar"s…
资料简介:本书是<Spring Boot 编程思想>的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplication.全书的讨论以Spring Boot为中心,议题发散至Spring技术栈.JSR及Java.希望透过全局的视角,帮助读者了解Spring Boot变迁的历程:经过多方的比较,帮助读者理解Spring Boot特性的原理:整合标准的规范,帮助读者掌握Spring Boot设计 spring boot编程思…
Spring Boot介绍 Spring Boot是由Pivotal团队提供的新框架,其设计目的是简化Spring应用的搭建以及开发过程.其目标是: 为所有Spring开发提供一个从根本上更快,且方便上手的体验 开箱即用,摆脱原有的默认配置方式 提供大型项目常用的非功能性特征,例如:内嵌服务器,安全,指标度量,健康监测,外部化配置 无需xml配置和绝无代码生成 Spring Boot系统要求 Spring Boot 2.1.2.RELEASE 版本 要求Java7或者更高版本(推荐用jdk8).…
前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问题.最大错误是1.4的bug: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/Hi…
学习 Spring Boot 必须得了解它的核心模块,和 Spring 框架一样,Spring Boot 也是一个庞大的项目,也是由许多核心子模块组成的. 你所需具备的基础 告诉你,Spring Boot 真是个牛逼货! Spring Boot 核心配置文件详解 Spring Boot 开启的 2 种方式 Spring Boot 自动配置原理.实战 Spring Boot 2.x 启动全过程源码分析 更多请在Java技术栈微信公众号后台回复关键字:boot. Spring Boot 的核心模块…
在学习使用springboot过程中,我们经常碰到以@Enable开头的注解,其实早在Spring3中就已经出现了类似注解,比如@EnableTransactionManagement.@ EnableWebMvc等,本文以@ EnableAutoConfiguration注解为例跟踪一下源码,分析实现过程. @EnableAutoConfiguration注解 @EnableAutoConfiguration注解主要功能是启用自动配,将classpath中所有包下的META-INF/sprin…
ComponentScan 这个注解可以扫描带@Component的类.众所皆知,@RestController和@Configuration和@Service和@Configuration等都有带Component这个注解.所以如果要注入controller和service等,我们可以直接在类上面注解下,并且开启ComponentScan,这样会自动装载并注入这个实例,我们使用的时候可以直接@Autowired使用,下面以controller为栗子: a:首先在spring boot启动入口开…
Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布.使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题.所以,jar包不一定合适适用所有的场景,如war包更合适,你可以尝试转为传统的war包,这样打补丁包可能更方便. 如何配置打war包呢? 以下配置以Maven为说明讲解,Gradle的查看类似配置. 1.修改Spring Boot启动类 启动类继承SpringBootServletInitializer类,并覆盖con…
最近接外包,需要部署服务器,便是参考了网上的几篇博文,成功在阿里云服务器成功部署了Spring Boot项目,特记下本篇笔记 Spring Boot项目打包 这里说一下部署的一些问题 1.mysql驱动 创建spring boot的时候,在界面选择添加了MySql的依赖,但是,实际项目测试的时候,发现驱动错误,所以,得把MySql驱动改为下面的驱动 <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId>…
前言 昨天,我开发的代码,又收获了一个bug,说是界面上列表查询时,正常情况下,可以根据某个关键字keyword模糊查询,后台会去数据库 %keyword%查询(非互联网项目,没有使用es,只能这样了):但是,当输入%字符时,可以模糊匹配出所有的记录,就好像,好像这个条件没进行过滤一样. 原因很简单,当输入%时,最终出来的sql,就是%%%这样的. 我们用的mybatis plus,写法如下,看来这样是有问题的(bug警告): QueryWrapper<QueryUserListReqVO>…
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Spring Boot 版本:2.2.x 最好对 Spring 源码有一定的了解,可以先查看我的 <死磕 Spring 之 IoC 篇 - 文章导读> 系列文章 如果该篇内容对您有帮助,麻烦点击一下"推荐",也可以关注博主,感激不尽~ 该系列其他文章请查看:<精尽 Spring B…
Oracle数据库的驱动依赖,maven仓库并不提供,需要手动添加 1. 下载jar文件 如ojdbc7.jar文件 将该文件放在D:\oracle\ojdbc7.jar路径下 2.然后在命令行输入 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=1.7 -Dpackaging=jar -Dfile=D:\oracle\ojdbc7.jar 3.在Spring Boot工程中引入依赖 <dep…
2018/02/02 更新 mvnrepository.com已经提供了ms jdbc 的jar URL: http://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc pom.xml中引用 <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc --><dependency>    <groupId>…
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢? 查询官网,可以得到下面的几种方案: 通过命令行指定 SpringApplication会默认将命令行选项参数转换为配置信息 例如,启动时命令参数指定: java -jar myproject.jar --server.port = 9000 从命令行指定配置项的优先级最高,不过你可以通过setAddCommandLineProperties来…
偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userName varchar(50) 那么如下的映射: @Data @Entity @Table(name="t_users") @NoArgsConstructor @AllArgsConstructor @Accessors(chain=true) public class User { @Id…
AOP(Aspect Oriented Programming),即面向切面编程,是Spring框架的大杀器之一. 首先,我声明下,我不是来系统介绍什么是AOP,更不是照本宣科讲解什么是连接点.切面.通知和切入点这些让人头皮发麻的概念. 今天就来说说AOP的一些应用场景以及如何通过和其他特性的结合提升自己的灵活性. AOP应用举例 AOP的一大好处就是解耦.通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理. 同时,抽出来的代码很多是与业务无关的,这样可以方便开发者更加专注自己…
这篇文章是抄其他人的,原址:https://cloud.tencent.com/developer/article/1082720 本文旨在向你介绍在Spring Boot中controller中最基本的一些注解,不可能涵盖所有的,但至少让你了解最基本的,然后可以通过这些注解来写出一个API或HTML的端点. 本文我们将分为四部分: 1.controller的类型(传统的 和 REST) 2.路由(Routes) 3.如何接收数据 4.Controller示例 Controller 类型 你也许…
Maven pom.xml 必须包含 <packaging>jar</packaging> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>…
概述 1.Spring Boot聚合工程打包war部署Tomcat 2.Spring Boot打包Jar,通过Java -jar直接运行. 3.提供完整pom.xml测试项目 至github 4.项目目前了集成了 Spring Boot + Spring data jpa +Redis集群+dubbo+freemarker 持续更新... 解决问题 1.xxxx中没有主清单属性 2.解决没有web.xml而报错 [ERROR] Failed to execute goal org.apache.…
jar包.war包 比较(表格) 项目 jar包 war包 在开发调试完成之后,可以将应用打成JAR包的形式,可以直接使用Maven插件的package命令,最终会形成一个可运行的 JAR包.我们使用java –jar命令就可以运行这个JAR包了. JAR包解压后的目录结构: 这个JAR包与传统JAR包的不同之处在于里面有一个名为lib的目录,在这个目录中包含了这个简单应用所依赖的其他JAR包,其中也包含内置的嵌 入式Tomcat,正是使用它,才能发布服务和访问Web资源.除了我们编写的源码所编…