简介

在启动任何项目(无论是小型项目还是企业级应用程序)之前,其中关键的方面之一是依赖管理,手动为小型应用程序执行依赖管理并不是一项困难的工作,但对于复杂的应用程序,手动管理所有项目依赖并不理想,容易出现许多问题以及浪费时间,而这些时间可以用于项目的其他一些重要方面。

Spring Boot背后的基本原理之一就是解决类似的问题。Spring Boot Starter是一套方便的依赖描述符,可以很容易地包含在任何级别的应用程序中。这些Starters作为Spring相关技术的引导过程,我们 不再需要担心依赖关系,它们将由Spring Boot Starters自动管理。

Starters包含了许多你需要的依赖项,以使项目快速启动和运行,并且具有一致的、被支持的一组管理传递依赖项。

接下来我做一个简单/常用的Starters测试  你就懂了

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
@RestController
@RequestMapping("/api")
public class ChesetoperateGoodsSpdController {@GetMapping("/all/list")public R list() {try {return R.ok().put("data","spring-boot-starter-web");} catch (Exception e) {return R.error(e.getMessage());}}}

然后我们通过IP:端口/项目地址访问就OK了

2.在引用一个mybatis-puls 的代码生成器程序

        <!--mybatis-plus-generator--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.2.0</version></dependency><!-- MySQL依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency>
package com.callfuwu.spdtohis;import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class CodeGenerator {/*** <p>* 读取控制台内容* </p>*/public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotEmpty(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}public static void main(String[] args) {// 代码生成器AutoGenerator mpg = new AutoGenerator();// 全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");System.out.println("projectPath {"+projectPath);// projectPath 只能获得到根目录 在下面可以拼接的子模块路径gc.setOutputDir(projectPath +"/src/main/java");gc.setAuthor("jobob");gc.setOpen(false);gc.setDateType(DateType.ONLY_DATE);//将localDateTime 转 Date// gc.setSwagger2(true); 实体属性 Swagger2 注解mpg.setGlobalConfig(gc);/*** 第一个点 需要改动的 数据源配置moduless*/// 数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://****:3306/***?useSSL=false&serverTimezone=GMT%2B8");dsc.setDriverName("com.mysql.jdbc.Driver");dsc.setUsername("***");dsc.setPassword("***");mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setModuleName(scanner("模块名"));//ticket-adminpc.setParent("com.callfuwu.spdtohis"); //需要生成该包下的生成地址,根据你们自己的项目路径配置mpg.setPackageInfo(pc);// 自定义配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};// 如果模板引擎是 freemarkerString templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocity// String templatePath = "/templates/mapper.xml.vm";// 自定义输出配置druid-spring-adminList<FileOutConfig> focList = new ArrayList<>();// 自定义配置会被优先输出focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});/*cfg.setFileCreate(new IFileCreate() {@Overridepublic boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {// 判断自定义文件夹是否需要创建checkDir("调用默认方法创建的目录");return false;}});*/cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);// 配置模板TemplateConfig templateConfig = new TemplateConfig();// 配置自定义输出模板//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别// templateConfig.setEntity("templates/entity2.java");// templateConfig.setService();// templateConfig.setController();templateConfig.setXml(null);mpg.setTemplate(templateConfig);// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);//strategy.setSuperEntityClass("com.baomidou.ant.common.BaseEntity"); //实体类继承BseEntity,你们可以选择是否继承,我不需要屏蔽掉了strategy.setEntityLombokModel(true);strategy.setRestControllerStyle(true);// 公共父类//strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");//控制器Controller继承BaseController,你们可以选择是否继承,我不需要屏蔽掉了// 写于父类中的公共字段strategy.setSuperEntityColumns("id");strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix(pc.getModuleName() + "_");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}
}

我们概述了Starters,解释了我们为什么需要它们,并提供了有关如何在项目中使用它们的示例。

让我们回顾一下使用Spring Boot启动器的好处:

  • 增加pom可管理性(无需手动配置各依赖项的版本)
  • 生产就绪,测试和支持的依赖配置(一个starter中包含了该功能所需要的所有包,配置起来简单方便)
  • 减少项目的总体配置时间

springBoot Starters相关推荐

  1. SpringBoot - Starters

    SpringBoot - Starters 1.官方文档 1.官方文档 官方文档:https://docs.spring.io/spring-boot/docs/current/reference/h ...

  2. springboot starters包

    springboot starters包 ​ starts 是方便的依赖描述符集合,你可以将其包含在应用程序中.你可以一个一站式的spring商店和相关技术.而无需遍历示例代码和依赖描述符的复制黏贴负 ...

  3. 你是如何理解SpringBoot Starters的?

    你是如何理解SpringBoot Starters的? SpringBoot官方对我们平时开发过程中涉及到的场景(数据访问,Web开发)封装成一个个的启动器,我们只需要在项目中引入某个场景的启动器,则 ...

  4. SpringBoot Starters

    约定大于配置(约定优于配置). Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包. Starter命名规则:自带的以spring-boot开头. 常用的Starter: sp ...

  5. JAVA社招面试问题总结(一年工作经验)

    以下面试问题很多是我在最近面试过程中遇到的: 一年工作经验小白,请大佬指点 1.Java常考知识点 java的基本数据类型与包装类: final修饰变量类方法: String为什么是不可变的,以及ne ...

  6. springboot的starters原理

    问题引出:如何简化传统spring项目的配置? 解决方式: spring framwor团队为了解决上述问题,生产出了springboot框架 引发思考: 1.springboot 如何简化了[web ...

  7. 学习总结:springboot 的启动类Starters的理解

    目录 一.Starters是什么? 二.Starters命名 三.Starters分类 1. Spring Boot应用类启动器 2. Spring Boot生产启动器 3. Spring Boot技 ...

  8. IDEA实现SpringBoot自定义Starters

    尝试多次,总是会有一个坑,Maven安装Starters成功,可以在External Libraries看到打包好的jar,也能打开里面源码文件,但是没法在项目中引用的情况. 最后参考https:// ...

  9. SpringBoot如何自定义starters

    一.starter :场景启动器 SpringBoot将每个场景都抽取成一个start,通过引入starts,就能使用到相应的场景功能.即使是这样,SpringBoot也不能囊括开发中所有的场景,我们 ...

最新文章

  1. redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?
  2. 计算机专业每年都有国企招老吗,这十大专业在国企中最受欢迎,待遇高、前景好,有你的专业吗?...
  3. 成功解决 keras\callbacks.py:999: UserWarning: `epsilon` argument is deprecated and will be removed, use
  4. ITK:计算代码点之间的时间
  5. 【渝粤题库】广东开放大学 岭南文化概论专科 形成性考核
  6. 桌面记事本软件测试工资,记事本的一个BUG
  7. Qt第五课 无构造函数可以接受源类型,或构造函数重载决策不明确
  8. python设计---空域增强之图片去噪(中值滤波、均值滤波、高斯滤波、双边滤波)
  9. 安装centos后 启动mysqld显示mysqld: 未被识别的服务 解决方法
  10. input里面check 状态检测
  11. 刨根问底HTTP和WebSocket协议
  12. 关于如何把用手机查看原型
  13. java图片透明化处理_java的图片背景透明及透明度处理
  14. 实现京东商城手机注册获取验证码
  15. 身份证扫描件用手机怎么弄?手把手教你生成电子身份证
  16. day02-2学习过程笔记
  17. 【MQ-2 可燃气体和烟雾传感器与 Arduino 配合使用】
  18. cups ipp oracle,CUPS cups/ipp.c空指针引用拒绝服务漏洞
  19. 多Tabs的横向滚动插件(支持Zepto和jQuery)
  20. kso经验积累 -- c#发送邮件

热门文章

  1. 「直播回放」大数据平台如何落地(附PPT下载)
  2. WriteableBitmapEx
  3. 阿里十年测试带你走进APP测试的世界
  4. 一文搞懂电力系统调度数据网4+1+1区
  5. C# 主窗体Load事件、Shown事件、Activated事件 区别
  6. 爬取五大平台621款手机,告诉你双十一在哪买最便宜!
  7. git 本地新建分支
  8. 双击鼠标HOOK学习
  9. 新浪获取股票实时数据接口(22年春节后)
  10. DVWA-------简单的SQL注入