springboot simple(2) springboot Starter

Starter使得编写程序就像搭积木一样,这也是springboot很火的一个重要原因吧。
Starter相当于模块,包括:
1.这个模块需要的依赖库;
2.提供对模块的配置项给使用者;
3.提供自动配置类对模块内的Bean进行自动装配;
我们在POM中引入starter,Spring Boot能自动扫描并加载相应的模块。

1 starter原理

SpringBoot自动配置的原理:
第1步,SpringBoot 在启动时会去依赖的starter包中寻
找 resources/META-INF/spring.factories 文件,然后根据文件中配置的Jar包去扫描项目所依赖的Jar包,这类似于 Java 的 SPI 机制。
第2步,根据 spring.factories配置加载AutoConfigure类。
第3步,根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context 上下文当中。

2 starter的结构

以spring-boot-starter-redis为例进行说明:
我们POM文件中引入spring-boot-starter-redis:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-redis</artifactId>
   <version>${spring-boot-starter-redis-version}</version>
</dependency>

我们可以看到spring-boot-starter-redis是一个空的工程,
在这里插入图片描述
spring-boot-starter-redis工程POM文件中引入了spring-data-redis的工程。

<dependency>
   <groupId>org.springframework.data</groupId>
   <artifactId>spring-data-redis</artifactId>
</dependency>

spring-data-redis的工程包含了自动配置的类。
在这里插入图片描述

小结:springboot Starter包含starter project和自动配置project;

  •  starter project 是一个空的jar文件,仅提供辅助性依赖管理,会引用自动配置project
  •  自动配置project 按照自动注解实现自动配置类,在META-INF/spring.factories中配置自动配置的类。

3 自定义使用starter

本节建立一个project演示starter的使用,并输出HellowWorld!
projec包含两个module,starter module和webmodule。starter module包含了自动配置模类,web module依赖starter module。

3.1 starter module

第1步:POM中引入:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId> 
</dependency>

第2步:定义配置的类:

@ConfigurationProperties(prefix = "starter")
public class StartProperties {
    private String config;
    public String getConfig() {
        return config;
    }
    public void setConfig(String config) {
        this.config = config;
    }
}

第3步: 定义一个service:

public class StartService {
    private StartProperties startProperties;
    public StartProperties getStartProperties() {
        return startProperties;
    }
    public void setStartProperties(StartProperties startProperties) {
        this.startProperties = startProperties;
    }
    public String print(){
        return  startProperties.getConfig();
    }
}

第4步:定义一个自动配置的类:

@Configuration
@ConfigurationProperties //web应用才生效
@EnableConfigurationProperties(StartProperties.class)
public class StartAutoConfiguration {
    @Autowired
    private StartProperties startProperties;
    @Bean
    public StartService helloService() {
        StartService startService = new StartService();
        startService.setStartProperties(startProperties);
        return startService;
    }
}

第5步:META-INF的spring.factories文件配置StartAutoConfiguration:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.feidao.starter.StartAutoConfiguration

3.2 web module

第1步:设置web module依赖starter module;
第2步:在application.properties 中加上配置:

starter.config=HelloWorld!

第3步:定义WebController类方便验证:

@RestController
@RequestMapping(value = "/starter")
public class WebController {
    @Autowired
    private StartService startService;
    @RequestMapping(value = "/print")
    public String print(){
        String str = startService.print();
        return str;
    }
}

第4步:启动web module,执行localhost:8080/starter/print验证如下:
在这里插入图片描述

具体参考代码:
https://gitee.com/alifeidao/springboot-simple/tree/master/
chapter2


教程列表
springboot simple(0) springboot简介
springboot simple(1) springboot Helloworld
springboot simple(2) springboot Starter
springboot simple(3 )springboot Web开发
springboot simple(4)springboot 数据持久化
springboot simple (5) springboot Nosql
springboot simple (6) springboot mqtt
springboot simple (7) springboot thrift
springboot simple (8) springboot kafka
springboot simple (9) springboot jpa(Hibernate)
springboot simple (10) springboot protobuf
springboot simple (11) springboot protostuff
springboot simple (12) springboot RabbitMQ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
springboot vue-simple-uploader 是一个前后端分离的文件上传插件,在使用前需要进行相关配置和代码的编写。 首先,在后端部分,我们使用的是Spring Boot框架。需要导入spring-boot-starter-web依赖,并在配置文件中配置相关参数,例如设置文件上传临时目录、文件上传大小限制等。然后,我们需要编写一个处理文件上传请求的Controller类,使用@RequestBody注解接收前端传递的文件信息,并使用multipartFile.transferTo()方法保存文件到指定目录中。 在前端部分,我们使用的是Vue.js框架,并引入vue-simple-uploader插件。首先,我们需要安装该插件,可以使用npm安装或者直接引入插件的CDN地址。然后,在Vue实例中,我们可以通过配置uploaderOptions对象来进行插件的相关配置,例如设置上传的url、自定义headers、文件的最大数量和大小限制等。然后,在需要上传文件的组件中,我们可以通过引入uploader组件,并使用v-model绑定上传的文件列表。 通过上述配置和代码编写,我们就可以实现前后端分离的文件上传功能了。当用户选择上传的文件后,前端会将文件信息发送给后端,后端接收到请求后进行文件保存操作,并返回相应的结果给前端,例如文件的保存路径或者上传成功的提示信息。 总结一下,springboot vue-simple-uploader是一个支持前后端分离的文件上传插件,通过在后端配置文件上传参数和编写Controller类,在前端通过配置uploaderOptions对象和使用uploader组件,我们可以实现文件的上传和保存功能。这样,我们就可以方便地在Spring Boot和Vue.js项目中实现文件上传的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值