
Spring Boot
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Boot文档阅读笔记-Scheduling Tasks
这篇博文将说明,如何一步一步完成Spring的任务调度功能。主要是使用@Scheduled注解,完成每5秒打印当前时间。首先在Maven中增加awaitility依赖包整体Maven如下:创建调度调度任务的类,ScheduleTasks.java@Scheduled注解说明了在合适调用,比如fixedDelay说明每多少毫秒调用一次。这里还有其他选项,比如使用corn,这里全称应该是crontab,也就是定时任务,如@Scheduled(cron="...")最后在@SpringBo原创 2022-12-05 09:00:09 · 1044 阅读 · 1 评论 -
Java笔记-解决WebServiceTemplate中No subject alternative names matching IP address xxx
主要的原因是证书有问题,就是程序的IP地址和证书的IP地址不匹配。这里是客户端报错,使用的是spring-ws对应的Maven如下; <dependency> <groupId>org.springframework.ws</groupId> <artifactId>spring-ws-security</artifactId> <vers原创 2021-08-24 08:48:21 · 5179 阅读 · 0 评论 -
Java笔记-JdbcTemplate批量执行insert及update
主要就是batchUpdate函数用法如下:insert:String cmdTmp = "INSERT INTO %s(CREATE_DATE, UPDATE_TIME, XXX_ID, XXXID, XXX_TYPE) VALUES(?, ?, ?, ?, ?)";String cmd = String.format(cmdTmp, tableName);List<Object[]> batchArgs=new ArrayList<Object[]>();原创 2021-08-17 08:48:24 · 1571 阅读 · 0 评论 -
Spring Boot文档阅读笔记-how-to-implement-2-way-ssl-using-spring-boot
two-way-ssl需要12次握手(除去TCP的三次握手),如下图:双向认证过程:1.客户端发送ClientHello消息,告诉服务端要使用SSL。2.客户端发送ServerHello的响应,告诉客户端使用SSL。3.服务端发送证书给客户端;4.服务端发送发送数据,要求客户端发送证书;5.此时客户端与服务端招呼已经结束;6.客户端发送自己的证书给服务端(客户端认证服务端证书成功);7.客户端发送session key(使用服务端公钥加密);8.客户端发送一个C.原创 2021-08-03 08:38:57 · 515 阅读 · 0 评论 -
Spring Boot笔记-设置拦截器为false时返回的Body
以preHandle拦截器为例:@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler原创 2021-06-01 08:33:36 · 1372 阅读 · 0 评论 -
Spring Boot文档阅读笔记-exception handling–@ExceptionHandler解析与实例
程序结构如下:源码如下:CustomExceptionHandler.java原创 2021-06-01 08:31:29 · 1256 阅读 · 0 评论 -
Spring Boot笔记-JPA自定义SQL语句参数为对象时如何操作
环境:SpringBoot v2.1.10.RELEASE举个例子:@Modifying@Query(nativeQuery = true, value = "update XXX.YYY set NAME=:#{#xxObject.getName()}, XXX_ID=:#{#xxObject.getXXXId()}, XXX_TYPE=:#{#xxObject.getXXXType()}, PYYE=:#{#xxObject.getPYYYe()} where ID = :#{#x.原创 2021-06-01 08:26:51 · 2536 阅读 · 2 评论 -
Spring Boot笔记-解决前后端分离在开发时的跨域问题
这里可以用Nginx解决跨越问题,也可以用下面这种方式在开发时解决:@Configurationpublic class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedHeaders(CorsConfigu原创 2021-05-11 15:21:34 · 484 阅读 · 0 评论 -
Spring Boot笔记-WebSocket的使用
程序结构如下:关键源码如下:WebSocketConfig.javapackage com.example.demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.server.standard.ServerEndp..原创 2021-05-11 15:16:04 · 830 阅读 · 0 评论 -
Spring Boot笔记-JPA中自定义@Query分页查询
如下事例代码:@Repositorypublic interface XXXXXRepository extends JpaRepository<XXXYYY, XXXYYYPK> { //XXXXX @Query(nativeQuery = true, value = "select * from XXX.XXX_B where XXX = :XXX") Page<XXXYYY> getAllSYData(Pageable pageable, @P原创 2021-04-26 18:29:10 · 1267 阅读 · 0 评论 -
Spring Boot笔记-validation的使用及统一异常处理
这里以JPA后端分页为例,演示下validation的使用,及统一异常处理。正常分页查询:page页是从0开始的,我这里返回的时候,给他加1了。这里要注意。当出现异常的查询时:及这里的关键异常处理是这个类:/*** * 统一异常处理、数据预处理 */@ControllerAdvicepublic class ControllerExceptionHandler { @ExceptionHandler(value = BindException.clas原创 2021-04-26 18:27:54 · 3398 阅读 · 0 评论 -
Spring Boot笔记-@PathVariable的使用
这里直接展示下代码,看一下就明白了:http://127.0.0.1:8080/get/1000?name=xiaoming对应的代码如下: @GetMapping("/get/{id}") public Object getId(@PathVariable Long id, @RequestParam("name") String name){ System.out.println("id:" + id);原创 2021-04-26 18:21:18 · 993 阅读 · 0 评论 -
Spring Boot笔记-JPA分页(后端分页)
数据库内容如下:使用Pageable即可。Maven如下:<?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原创 2021-04-26 18:18:58 · 1762 阅读 · 0 评论 -
Spring Boot笔记-controller接收json参数
以前使用的是这样的方式获取JSON参数的在controller端参数使用HttpServletRequestHttpServletRequest request通过他的request.getInputStream();//获取输入流后使用BufferedReader去直接读就可以了最近发现了一种新的方式,使用@RequestBody注解,即可如下: @PostMapping("/postJson1") public Object postJson1(@Requ原创 2021-04-26 18:15:49 · 9709 阅读 · 0 评论 -
Spring Boot笔记-接收参数的3种情况
如下代码:@RestControllerpublic class MyController { @GetMapping("/test1") public MyResponse test1(MyRequest myRequest){ MyResponse myResponse = new MyResponse(); myResponse.setCode(myRequest.getCode()); myResponse.setMsg(m原创 2021-04-20 17:56:16 · 642 阅读 · 0 评论 -
Spring Boot文档阅读笔记-EhCache的使用
这里要先注意2个概念:buffer和cache,很多人会讲这两个概念混用。但其实这是两个概念!buffer:一般是指存储临时数据的实体。只能读写一次,对于程序员来说buffer是可见的,比如TCB中,接收tcp数据的buffer。cache:对于程序员来说是不可见的。允许多次获取相同的数据。这也就是EhCache不叫EhBuffer的原因。程序结构如下:首先来看下pom.xml<?xml version="1.0" encoding="UTF-8"?&g...原创 2021-04-16 08:44:20 · 938 阅读 · 0 评论 -
Spring Boot笔记-自定义配置项默认值设置
如果用动态配置中心,如果漏了配置会很麻烦,spring boot可以设置个默认值如下:这个是正常的:application.propertiestest.hello=Hello WorldMyController.java@RestControllerpublic class MyController { @Value("${test.hello}") private String value; @GetMapping("/hello") p原创 2021-04-07 08:47:10 · 6007 阅读 · 0 评论 -
Spring Boot笔记-banner.txt的使用
这里有个banner.txt放到resource里面:banner的内容如下: _ _ _ _ __ ______ _ _ | | | | | | | \ \ / / __ \| | | | | |__| | ___| | | __\ \ /\ / / | | | | __| | | __ |/ _ \ | |/ _ \ \/ \/ /| | | | |/ _` | | | | | __/原创 2021-04-07 08:44:24 · 1266 阅读 · 0 评论 -
Spring Cloud笔记-eureka及openfeign基本使用
例子是这样的,利用eureka生成服务中心,然后一个数据提供服务注册上去,数据调用服务注册。如下:输入服务调用者的url:这里内部是调用服务提供者的API:源码打包下载地址:https://github.com/fengfanchen/Java/tree/master/SpringCloudTest...原创 2021-03-30 15:23:51 · 627 阅读 · 0 评论 -
Spring Boot文档阅读笔记-Spring Boot @Bean解析
利用SpringBoot的@Bean创建一个简单的Bean。Spring的@Bean注解是放在方法上的,带上这个注解的方法会被Spring容器管理。并且这个方法要返回一个值(对象),这个值和对象会被BeanFactory注册为Bean。下面是一个例子程序运行截图如下:项目结构如下:pom.xmlsrc├───main│ ├───java│ │ └───cn│ │ └───it1995│ │ DemoApplic原创 2021-03-30 15:18:44 · 686 阅读 · 0 评论 -
Spring Boot笔记-@ComponentScan初步解析
@ComponentScan默认是扫描当前包下的所有类(包括子包)如下:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScanpublic class DemoApplication { public static void main(String[] args) { ConfigurableApplicationContext ctx = SpringApplication.run(DemoA原创 2021-03-30 15:15:58 · 1132 阅读 · 0 评论 -
Spring Boot文档阅读比较-@SpringBootApplication Auto Configuration
maven如下:<?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 https://maven.apache.org/xsd/原创 2021-03-23 07:32:14 · 1260 阅读 · 0 评论 -
Spring Boot笔记-利用Quartz进行定时任务,利用websocket推送到浏览器(界面为thymeleaf)
效果如下,浏览器输入URL:等待一段时间,websocket主动推送后端打印:程序结构如下:QuartzConfig.java@Configurationpublic class QuartzConfig { @Bean public JobDetail job(){ return JobBuilder.newJob(QuartzJob.class).storeDurably().build(); } @Bean原创 2021-03-16 08:47:13 · 942 阅读 · 0 评论 -
Spring Boot文档阅读笔记-FileHandling解析及抓包分析
这篇博文将说明使用WEB服务上传和下载文件。首先是文件上传:使用MultipartFile作为请求参数,这个上传API使用Multi-Part表单的值:代码如下: @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public String fileUpload(@RequestParam("file")MultipartFile file) throws IOExc原创 2021-03-10 14:43:54 · 830 阅读 · 0 评论 -
Spring Boot笔记-@Qualifier与@Autowired与@Bean
搞一个对象,让SpringBoot去管理用@Bean如果要注册好几个同对象类型的让SpringBoot管理@Bean(name = "MyName")SpringBoot注入,说白了就是反射,获取其单例对象:@Autowired如果有很多同类型,我要指定用MyName的进行注入: @Autowired @Qualifier("MyName")...原创 2021-03-09 08:43:09 · 1006 阅读 · 0 评论 -
Spring Boot笔记-自动配置(Spring Boot封装成jar被其他项目引用)
特点:这里也就是自己写个Service注册到别人的SpringBoot项目中,然后别人来调用这个Service,这个Service,先读取自己的application.properties,再读取引入这个项目的application.properties,这里是覆盖式的。程序运行如下:CallJar调用了TestToolJar的一个Service。运行截图如下:这里的host,和port是在CallJar的application.properties中配置的:..原创 2021-03-09 08:41:11 · 1976 阅读 · 0 评论 -
Spring Boot文档阅读笔记-DataSource configuration
DataSource:一个工厂可以连接任意厂家的数据库。通常使用URL以及一些认证去建立数据库连接。DataSource在代码中是一个对象,这个对象贯彻并落实了javax.sql.DataSource接口中注册JNDI服务,并且这个对象能发现并使用JNDI的名称。DataSource可以用来获取: a. 标志Connection对象; b. 使用了连接池的connection; c. 使用了事务及连接池的connection;下面是DataSource的配置...原创 2021-03-05 08:31:37 · 3600 阅读 · 2 评论 -
Spring Boot文档阅读笔记-Creating Asynchronous Methods解析
创建一个GitHub用户信息查找服务,这个服务是通过GitHub的API获取数据的。接口是http的,如下:这里创建一个model去接收对象:@Data@JsonIgnoreProperties(ignoreUnknown = true)public class User { private String name; private String blog;}@JsonIngnore告诉spring忽略其他json属性。下面是创建GitHub检索服务,代码如原创 2021-02-11 23:16:48 · 450 阅读 · 0 评论 -
Spring Boot笔记-使用RedirectAttributes重定向后也可以显示填写的信息
这里是这样的,提交表单后,重定向,在以前的函数里面设置了一些前端的信息。重定向后,还能显示出来。最后指定的函数: @GetMapping("/") public String getIndex(){ return "index"; }调用的函数: @PostMapping("/check") public String checkCipherAndSendEmail(@RequestParam("cipherString").原创 2021-02-03 16:59:07 · 812 阅读 · 0 评论 -
Spring Boot笔记-发送纯字符串邮件及带附件邮件
首先引入Maven包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>这里以QQ邮箱为例,要开通smtp的服务,这里还有要注意的。尽量不要用刚刚注册的邮箱,不然会被供应商退回的。application.proper原创 2021-02-03 16:40:18 · 849 阅读 · 0 评论 -
Spring Boot文档阅读笔记=Caching Data with Spring
此篇博文展示了使用Spring去管理Bean开启缓存。maven如下:<?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.or.原创 2021-01-22 08:47:36 · 521 阅读 · 0 评论 -
Spring Boot文档阅读笔记-Messaging with Redis
首先要启动Redis服务端redis-serverredis启动后会有如下信息:[35142] 01 May 14:36:28.939 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf[35142] 01 May 14:36:28.940 * Max number of op原创 2021-01-12 14:16:34 · 648 阅读 · 0 评论 -
Spring Boot文档阅读笔记-对Securing a Web Application解析
首先创建一个非安全的Web应用这个应用包含两个页面,一个是home页面,一个是“Hello,World”页面。home页面使用Thymeleaf,相关代码如下:<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="https://www.thymeleaf.org" xmlns:sec="https://www.thymeleaf.org/thymeleaf-extras-springsecuri原创 2021-01-05 10:04:12 · 644 阅读 · 0 评论 -
Spring Shell笔记-help方法及exit及其他方法
可以看到那个shell Component,是我们自己写的shell命令。这里有几个命令:clear:清屏exit:退出help:帮助script:从文件里面执行命令stacktrace:打印最近的错误原创 2020-12-29 09:44:57 · 815 阅读 · 0 评论 -
Java文档阅读笔记-JPA中getOne()和findById的区别
findById()和getOne()都是从数据库中检索某个对象,不过获取数据的方式是不同的,getOne()是lazy操作,这种操作甚至没有访问数据库。getOne()返回ID的引用对象,他内部调用的了EntityManager.getReference()方法,这个方法返回proxy而非直接访问数据库(所以叫lazy),如果请求的实体不存在数据库中,那么此方法抛出EntityNotFoundException。findById()此方法直接访问数据库返回真实的对象,如果这条记..原创 2020-12-29 09:43:33 · 5443 阅读 · 0 评论 -
Spring Boot文档阅读笔记-使用Spring Data JPA连接多源数据库(MySQL和Oracle)
下面这个小项目展示了如何连接2个数据库,一个是Oracle,一个是MySQL。关键的Maven依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency> <!-- https://mvnrepository.com/ar原创 2020-12-24 14:33:23 · 1398 阅读 · 0 评论 -
Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
如下代码:public void receiveMessage(Message message){ ...... ......}其中对应的Message为此包:import org.springframework.amqp.core.Message;在listner中这样设置就可以了: MessageListenerAdapter listenerAdapter(Receiver receiver){ MessageListenerAdapter原创 2020-12-24 14:28:47 · 1123 阅读 · 0 评论 -
Spring Boot文档阅读笔记-构建Restful风格的WebService客户端
对应的maven如下:<?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 https://maven.apache.org/x原创 2020-12-17 11:14:10 · 651 阅读 · 0 评论 -
Spring Boot文档阅读笔记-构建Restful风格的WebService
Maven代码如下:<?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 https://maven.apache.org/xs原创 2020-12-17 09:51:42 · 587 阅读 · 0 评论 -
Java笔记-spring-rabbitmq中使用@RabbitListener消费(手动确认,获header数据)
手动确认时:application.properties需要添加spring.rabbitmq.listener.simple.acknowledge-mode=manual确认ackchannel.basicAck(tag, false);拒收发回rabbitmqchannel.basicReject(tag, true);下面是整体代码 @RabbitListener(queues = queueName) public void disposeSo原创 2020-12-02 19:25:35 · 3361 阅读 · 3 评论