Spring Boot基础

Spring的主要益处之一是简化Java开发。主要通过以下方面来实现:

  • 激发POJO的潜能
  • 依赖注入
  • 应用切面
  • 使用模板消除样板式代码

每一部分都在Spring新版本中不断优化,使得层次更清楚而且还能适配各种使用场景。新版本不断提高JavaConfig的配置能力,增加各种注解的使用。

SpringBoot没有引入新的特性,但是更大地简化了Java的开发,减少了很多业务不相关的固定化配置。在微服务的应用中得到极大的使用。

Spring的主要四个特性为:

  • Spring Boot Starter: 将常用的依赖分组进行整合,将其合并到一个依赖中,在Maven或Gradle构建中一次性添加到项目中。
  • 自动配置:自动配置特性利用了Spring 4对条件华配置的支持,合理地推测应用所需的bean并自动化配置它们。
  • 命令行接口-CLI
  • Actuator:为Spring应用添加了管理特性。
特性补充:
  • Starter减少了依赖的配置和传递依赖的版本控制。Starter实际使用了Maven和Gradle的依赖传递,Starter在自己的pom.xml文件中声明多个依赖,Starter的依赖会自动地传递性解析。 spring-boot-starter 实际上相当于一个基础的Starter
  • 自动配置削减Spring的配置。如把Thymeleaf添加到项目的类路径中,Spring boot在探测到后会推测项目需要使用Thymeleaf实现Spring MVC的视图功能,会自动配置相关的bean。 Spring Boot Starter也会自动触发自动配置。例如,如想使用Spring MVC,将Web Starter作为依赖放在构建中即可。Spring会自动添加Spring MVC依赖,然后就能探测到Spring MVC位于类路径下,自动配置多个Spring MVC bean,包括视图解析器、资源处理器以及消息转换器。我们的主要开发就能在编写业务相关处理请求的控制器上。

举例最简单Spring Boot启动方式

console,service分离模式,前后端分离
Spring Boot启动类

@SpringBootApplication(scanBasePackages = {"com.xxx"})
@MapperScan("com.xxx")
public class Application extends SpringBootServletInitializer
{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
    {
        return application.sources(Application.class);
    }

    public static void main(String[] args)
    {
        SpringApplication.run(Application.class, args);
    }
}

编写Startup.sh-添加第三方jar包路径和当前路径

typeset CLASSPS=$CLASSPATH
for i in `ls ./3rd/*.jar`
do
CLASSPS=$CLASSPS:$i
done
java $JAVA_OPTS -cp .:$CLASSPS:xxx-service-1.0.0.jar org.springframework.boot.loader.JarLauncher > /dev/null 2>&1 &

对应的MANIFEST.MF-通过Maven构建

Manifest-Version: 1.0
Implementation-Title: xxx-service
Implementation-Version: 1.0.0
Archiver-Version: Plexus Archiver
Built-By: root
Implementation-Vendor-Id: com.xxx
Spring-Boot-Version: 1.5.13.RELEASE
Implementation-Vendor: Pivotal Software, Inc.
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.xxx.Application
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven
Build-Jdk: 1.8.0_144

properties/yml配置文件

SpringBoot为我们提供了application.properties配置文件,让我们可以进行自定义配置。SpringBoot会自动加载classpath类路径下的application.properties配置文件,或者可以通过手动加载或添加Properties工具类的方式。

  • 1、配置文件的格式

SpringBoot可以识别两种格式的配置文件,分别是yml文件与properties文件,我们可以将application.properties文件换成application.yml,这两个文件都可以被SpringBoot自动识别并加载,但SpringBoot中注解方式暂时还并未提供手动加载yml格式文件的功能。如果是自定义的配置文件,就最好还是使用properties格式的文件。加载自定义属性文件的注解:@PropertySource(“classpath:xxx.properties”)

  • 2、配置文件的加载

加载的意思就是将文件读取到Spring容器之中,更确切的说就是将各个配置项装载到Spring上下文容器之中供随时取用。
application.properties配置文件是在SpringBoot项目启动的时候被自动加载的,其内部的相关设置会自动覆盖SpringBoot默认的对应设置项,所以的配置项均会保存到Spring容器之中。

使用变量的方式-待确认补充

  • @Value等注解方式
  • Environment env环境变量 env.getProperty(xxx) --区分环境变量/系统属性/启动参数
  • 编写Properties Util类,直接加载配置文件

附:Spring Boot中Mvc拦截器的JavaConfig形式

@Configuration
public class InterceptorConfigurer extends WebMvcConfigurerAdapter
{
    private static final boolean iamEnable = true;

    @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        // 多个拦截器组成一个拦截器链
        if (iamEnable)
        {
            registry.addInterceptor(new XXXInterceptor()).addPathPatterns("/**");
        }
        super.addInterceptors(registry);
    }
}

相关基础介绍blog
https://www.zhihu.com/question/39483566
https://www.cnblogs.com/V1haoge/p/7183408.html
https://www.cnblogs.com/ityouknow/p/5662753.html
https://blog.csdn.net/hguisu/article/details/51072683
https://blog.csdn.net/gebitan505/article/details/54929287/
附:Java获取环境变量/系统属性/启动参数的方法
附:spring boot 拦截器之WebMvcConfigurerAdapter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值