boot

Spring Boot(六):自定义starter

这一生的挚爱 提交于 2020-02-27 14:45:33
在springboot中,使用最多的就是starter。starter可以理解为一个可拔插式的插件,例如,你想使用jdbc插件,那么可以使用spring-boot-starter-jdbc。 随着版本的推移Starter家族成员也与日俱增。在传统Maven项目中通常将一些层、组件拆分为模块来管理,以便相互依赖复用,在Spring Boot项目中我们则可以创建自定义Spring Boot Starter来达成该目的。 一、starter的工作原理 1、springboot在启动时扫描项目所依赖的jar包,寻找包含搜spring.factories文件的jar包 2、根据spring.factories配置加载AutoConfiure类 3、根据@Conditional注解的条件,进行自动配置并将Bean注入spring context 二、自定义starter 1、IDEA创建一个empty project 2、添加两个module,一个是自动配置(maven工程),一个是启动器(springboot工程),启动器依赖自动配置。 3、项目结构 4、内部代码 (1)spring-boot-starter-autoconfigurer module package com.springboot.starter; import org.springframework.beans

Spring Boot(五):Spring Boot Jpa 的使用

ⅰ亾dé卋堺 提交于 2020-02-27 02:13:27
一、Spring Boot Jpa简介 Jpa(Java Persistence API)是sun官方提出的java持久化规范。它为java开发人员提供了一种对象/关联映射工具,来管理java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在hibernate、toplink、jdo等ORM框架各自为营的局面。 值得注意的是,Jpa是在充分吸收了现有ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,Jpa受到了极大的支持和赞扬,其中就包括了spring和EJB的开发团队。 注意:Jpa 是一套规范,不是一套产品,那么像 Hibernate,TopLink,JDO 他们是一套产品,如果说这些产品实现了这个 Jpa 规范,那么我们就可以叫他们为 Jpa 的实现产品。 Spring Boot Jpa是Spring基于ORM框架、JPA规范的基础上封装的一套Jpa应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用Spring Boot Jpa可以极大提高开发效率。 二、基本查询 基本查询也分为两种,一种是 Spring Data 默认已经实现,一种是根据查询的方法来自动解析成 SQL。 1、预先生成方法 Spring Boot

Spring Boot 2 - 使用CommandLineRunner与ApplicationRun

旧城冷巷雨未停 提交于 2020-02-26 05:29:58
本篇文章我们将探讨CommandLineRunner和ApplicationRunner的使用。 在阅读本篇文章之前,你可以新建一个工程,写一些关于本篇内容代码,这样会加深你对本文内容的理解,关于如何快速创建新工程,可以参考我的这篇博客: Spring Boot 2 - 创建新工程 概述 CommandLineRunner和ApplicationRunner是Spring Boot所提供的接口,他们都有一个run()方法。所有实现他们的Bean都会在Spring Boot服务启动之后自动地被调用。 由于这个特性,它们是一个理想地方去做一些初始化的工作,或者写一些测试代码。 CommandLineRunner 使用Application实现 在我们新建好工程后,为了简单我们直接使用Application类实现CommandLineRunner接口,这个类的注解@SpringBootApplication会为我们自动配置。 package cn.examplecode.sb2runner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.boot

spring boot构建基础版web项目(一)springboot、thymeleaf控制层基础构

与世无争的帅哥 提交于 2020-02-26 03:06:46
原文作者:弥诺R 原文地址: http://www.minuor.com/147852147/article 转载声明:转载请注明原文地址,注意版权维护,谢谢! 写前说明 根据个人在各篇博文中看到的信息,以及自己的总结,下面的说明文档只涉及到简明的一些知识点。如thymeleaf的文件路径配置、缓存等,都是直接使用默认的方式,但是实际上可以通过代码中加载和配置文件配置的方式个性化,这里不做详细的说明,因为在实际项目开发中基本是用不是这些个性化配置,都是使用默认配置,如果需要特殊个性化可以根据实际情况google、百度。 创建项目 创建项目的方式有多种,第一种就是在创建的时候就选好你要使用Springboot的哪些功能,如用jdbc就勾选jdbc,在生成项目的时候就会自动生成Springboot-jdbc的依赖坐标,并加入到pom.xml文件中,这里不采用这种方式,而是直接创建项目,依赖坐标通过手动加入。 步骤:File->new->project->maven->next->next->finish。 pom文件 这里的项目我采用的多个模块的创建,因为这样更贴切实际开发场景,模块的情况看下面项目pom.xml文件。 父pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven

“灾难无情人有情”:备战金三银四之微服务架构问题!(含解析)

北慕城南 提交于 2020-02-26 01:27:52
前言: 现在IT界跳槽已成常态,跳槽,可能有以下原因: 技术达到瓶颈,无法在此公司有好的提升,前几年我感觉基本不会出现,至少我现在没出现。 实力与薪资不匹配。 和同事 领导不和,如果你在几家公司都这样,要自我检讨一下是不是自己的问题。 仅个人观点,其他诸如地域 情感 兴趣等个人原因不做讨论。 这也导致很多企业在用人时会比较在意员工的稳定性一般外包公司都会比较忙,相对来说,成长应该是比较快的,而你的工作性质偏业务,那么你要想清楚一个问题,以后你的发展轨迹是怎样的?是在技术方向越走越远呢,还是在管理方向发展呢? 一、 微服务架构专题(思维导图) 二、微服务是干什么的 我对于微服务最大的体会就是:对于云平台来说,如果元数据驱动的平台组件是骨骼,那么微服务和触发器就是串联骨骼的经络和血脉没有经络和血脉,一堆组件仅仅是静态的,不能变化,没有反馈,更何谈交互。而一个PaaS平台可以孵化无数个SaaS应用,每个应用都需要使用一套小服务来开发,而为了防止应用搭建复杂化和避免后期难以维护,所以每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP AP(Rest的方式,这就是为什么我能看到那些标签的存在)。好处体现在以下方面: 这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署(体现在平台就是微服务站点部署和独立微服务站点部署) 这些服务可以使用不同的编程语言实现(只要实现结果

软帝学院教你:初识springboot

天涯浪子 提交于 2020-02-25 22:13:19
软帝学院教你:初识springboot Spring Boot简化了基于Spring的应用开发。你可以很容易地创建一个独立的,产品 级别的Spring应用。 我们为Spring平台及第三方库提供开箱即用的设置,这样你就 可以有条不紊地开始。多数Spring Boot应用只需要很少的Spring配置。 接下来我们开始第一个springboot应用,首先需要安装Java SDK 1.8 或更高版本 第一步通过maven创建应用SpringBoot-First,编辑pom文件,在文件中加入spring-boot-start-parent,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了。 第二步:因为我们开发的是web工程,所以需要在pom.xml中引入spring-boot-starter-web,spring官方解释说spring-boot-start-web包含了spring webmvc和tomcat等web开发的特性。 第三步开始编辑我们的启动类,然后在启动类申明让spring boot自动给我们配置spring需要的配置,比如:@SpringBootApplication,为了可以尽快让程序跑起来,我们简单写一个hello world例子: /* Hello world! /

Springboot aop记录用户操作日志

独自空忆成欢 提交于 2020-02-25 16:20:08
#Springboot aop记录用户操作日志 在Spring框架中,使用AOP配合自定义注解可以方便的实现用户操作的监控。首先搭建一个基本的Spring Boot Web环境开启Spring Boot,然后引入必要依赖: 自定义注解 定义一个方法级别的@Log注解,用于标注需要监控的 大专栏 Springboot aop记录用户操作日志 方法: 12345 @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Log { String value() default "";} 来源: https://www.cnblogs.com/liuzhongrong/p/12362047.html

spring boot容器启动详解

99封情书 提交于 2020-02-24 20:21:06
目录 一、前言 二、容器启动 2.1 @SpringBootApplication注解 2.2 SpringApplication.run()静态方法 如上图,容器启动流程可以分为5个主要步骤: 1.getRunListeners获取监听器(SpringApplicationRunListeners ) 载入工厂名称(loadFactoryNames) 创建spring工厂实例(createSpringFactoriesInstances) 2.准备好环境 3.准备上下文 4.刷新上下文 5.刷新完上下文后 三、总结 一、前言 spring cloud大行其道的当下,如果不了解基本原理那么是很纠结的(看见的都是约定大于配置,但是原理呢?为什么要这么做?如何串联起来的?)。spring cloud是基于spring boot快速搭建的,今天咱们就看看spring boot容器启动流程(全文基于1.5.9版本)。(本文不讲解如何快速启动spring boot,那些直接官方看即可) 二、容器启动 spring boot一般是 指定容器启动main方法,然后以命令行方式启动Jar包 ,如下图: 1 @SpringBootApplication 2 public class Application { 3 public static void main(String[] args) { 4

spring boot @ConfigurationProperties

北战南征 提交于 2020-02-24 17:53:24
参考:https://www.jianshu.com/p/b71845c142d0 spring boot 1.5 之后 @ConfigurationProperties 没有了locations 属性,也就是无法指定配置文件路径。 替代方式是@PropertySource() 但是 spring 的思想是不希望一个配置类绑定到一个配置文件上面。 参考:https://blog.csdn.net/wo541075754/article/details/52174900 @PostConstrut 在Servlet初始化之前的操作 来源: https://www.cnblogs.com/inspirationBoom/p/11157009.html

Spring Boot自动化配置原理

时间秒杀一切 提交于 2020-02-24 12:40:28
Spring Boot自动化配置原理依赖于 @Conditional 注解来实现: @Conditional是Spring4提供的一个新特性用于根据条件来控制Bean的创建行为。 我们从大家熟知的Spring Boot 的启动类开始 @SpringBootApplication public class DemoApplication { public static void main ( String [ ] args ) { SpringApplication . run ( DemoApplication . class , args ) ; } } @SpringBootApplication 注释,我们可以先从它开始分析,查看源码后可以发现它是一个包含许多注解的组合注解。 @Target ( { ElementType . TYPE } ) @Retention ( RetentionPolicy . RUNTIME ) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan ( excludeFilters = { @Filter ( type = FilterType . CUSTOM , classes = { TypeExcludeFilter