当前位置: 首页 > news >正文

网站建设 比选wordpress自动alt

网站建设 比选,wordpress自动alt,网络架构模拟设计,营销方案的几个要素目录 Spring Boot Starter是什么? 以前传统的做法 使用 Spring Boot Starter 之后 starter 的理念: starter 的实现: ?创建Spring Boot Starter步骤 在idea新建一个starter项目、直接执行下一步即可生成项目。 ?在xml中加入如下配置…

目录

Spring Boot Starter是什么?

以前传统的做法

使用 Spring Boot Starter 之后

starter 的理念:

starter 的实现:

?创建Spring Boot Starter步骤

在idea新建一个starter项目、直接执行下一步即可生成项目。

?在xml中加入如下配置文件:

创建 proterties 类来保存配置信息

创建业务类:

创建 AutoConfiguration

测试如下:


Spring Boot Starter是什么?

Spring Boot Starter 是在 SpringBoot 组件中被提出来的一种概念、简化了很多烦琐的配置、通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架。

比如我们经常用的一些:

spring-boot-starter-web:

spring-boot-starter-data-redis:

spring-boot-starter-data-mongodb:

spring-boot-starter-data-jpa:

spring-boot-starter-activemq:

总体来说就是 starter 是一种对依赖的合成。

以前传统的做法

在没有 starter 之前,传统的SSM项目、假如我想要在 Spring 中使用 jpa,可能需要做以下操作:

首先在 Maven 中引入使用的数据库的依赖>>然后引入 jpa 的依赖>>在xml中配置一些属性信息>>调试调用直到可以正常运行。

上面这样的操作会有一些问题、比如:

如果过程比较繁琐,这样一步步操作会增加出错的可能性。

在配置的时候也会划掉大量的时间、对于新手和小白不太友好。

使用 Spring Boot Starter 之后

starter 的主要目的就是为了解决上面的这些问题

starter 的理念:

starter 会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。需要注意的是不同的 starter 是为了解决不同的依赖,所以它们内部的实现可能会有很大的差异,例如 jpa 的 starter 和 Redis 的 starter 可能实现就不一样,这是因为 starter 的本质在于 synthesize,这是一层在逻辑层面的抽象,也许这种理念有点类似于 Docker,因为它们都是在做一个 “包装” 的操作,如果你知道 Docker 是为了解决什么问题的,也许你可以用 Docker 和 starter 做一个类比。

starter 的实现:

虽然不同的 starter 实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties 和 AutoConfiguration。因为 Spring Boot 坚信 “约定大于配置” 这一理念,所以我们使用 ConfigurationProperties 来保存我们的配置,并且这些配置都可以有一个默认值,即在我们没有主动覆写原始配置的情况下,默认值就会生效,这在很多情况下是非常有用的。除此之外,starter 的 ConfigurationProperties 还使得所有的配置属性被聚集到一个文件中(一般在 resources 目录下的 application.properties),这样我们就告别了 Spring 项目中 XML 地狱。

上面的 starter 依赖的 jar 和我们自己手动配置的时候依赖的 jar 并没有什么不同,所以我们可以认为 starter 其实是把这一些繁琐的配置操作交给了自己,而把简单交给了用户。除了帮助用户去除了繁琐的构建操作,在 “约定大于配置” 的理念下,ConfigurationProperties 还帮助用户减少了无谓的配置操作。并且因为application.properties文件的存在,即使需要自定义配置,所有的配置也只需要在一个文件中进行,使用起来非常方便。采用的starter都上面都给大家列出来了。

创建Spring Boot Starter步骤

创建starter 项目

创建ConfigurationProperties 用来保存配置信息

创建AutoConfiguration,引用定义好的配置信息

在 AutoConfiguration 实现所有 starter 应该完成的操作,并且把这个类加入 spring.factories 配置文件中进行声明

打包项在 SpringBoot 项目中引入该项目依赖,然后就可以使用该 starter 了

具体操作步骤:

在idea新建一个starter项目、直接执行下一步即可生成项目。

在xml中加入如下配置文件:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><artifactId>http-starter</artifactId><version>0.0.1-SNAPSHOT</version><!-- 自定义starter都应该继承自该依赖 --><!-- 如果自定义starter本身需要继承其它的依赖,可以参考 https://stackoverflow.com/a/21318359 解决 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starters</artifactId><version>1.5.2.RELEASE</version></parent><dependencies><!-- 自定义starter依赖此jar包 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- lombok用于自动生成get、set方法 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.10</version></dependency></dependencies></project>
创建 proterties 类来保存配置信息
@ConfigurationProperties(prefix = "http") 
@Getter
public class HttpProperties {// 如果配置文件中配置了http.url属性,则该默认属性会被覆盖private String url = "https://blog.csdn.net/?type=blog";}
创建业务类:
@Setter
@Getter
public class HttpClient {private String url;// 根据url获取网页数据public String getHtml() {try {URL url = new URL(this.url);URLConnection urlConnection = url.openConnection();BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "utf-8"));String line = null;StringBuilder sb = new StringBuilder();while ((line = br.readLine()) != null) {sb.append(line).append("
");}return sb.toString();} catch (Exception e) {e.printStackTrace();}return "error";}}

这个业务类包含了url属性和一个getHtml方法,用于获取一个网页HTML 数据

创建 AutoConfiguration
@Configuration
@EnableConfigurationProperties(HttpProperties.class)
public class HttpAutoConfiguration {@Resourceprivate HttpProperties properties; // 使用配置// 在Spring上下文中创建一个对象@Bean@ConditionalOnMissingBeanpublic HttpClient init() {HttpClient client = new HttpClient();String url = properties.getUrl();client.setUrl(url);return client;}}

在上面的 AutoConfiguration 中我们实现了自己要求:在 Spring 的上下文中创建了一个 HttpClient 类的 bean,并且我们把 properties 中的一个参数赋给了该 bean。

最后,我们在resources文件夹下新建目录META-INF,在目录中新建spring.factories文件,并且在spring.factories中配置 AutoConfiguration:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=

com.nosuchfield.httpstarter.HttpAutoConfiguration

最后使用 Maven 打包该项目。之后创建一个 SpringBoot 项目,在项目中添加我们之前打包的 starter 作为依赖,然后使用 SringBoot 来运行我们的 starter

测试如下:
@Component
public class RunIt {@Resourceprivate HttpClient httpClient;public void hello() {System.out.println(httpClient.getHtml());}}

之后可以在 application.properties中修改配置来进行测试证明 properties 中的数据确实被覆盖

http://www.dtcms.com/a/459040.html

相关文章:

  • 《SaaS应用核心痛点攻坚:租户级动态配置管理的技术实践与落地》
  • 上海网站建设口碑最好的公司免费空间网站源码
  • 简单的企业网站视频剪辑课程
  • 西安火车站建设wordpress美图插件
  • 网站做电商资质吗万网是干什么用的
  • 国庆作业day5
  • 宁波育才建设教育集团网站衡水移动网站建设
  • 聊城网站优化wordpress 慢集市
  • 开发网站需要什么人员那些公司需要网站开发工程师
  • 青浦专业做网站公司网站被k 但收录内页
  • 龙岩网站优化公司肇庆seo按天计费
  • 卫辉市住房和城市建设局网站呼和浩特网站seo优化方案
  • 广元网站制作麻城网站建设公司
  • 源码哥网站的模板科技大学录取分数线2023
  • 山东平台网站建设价格杭州seo渠道排名
  • 什么是网站推广如何查网站建设时间
  • 岳阳县住房和城乡建设局网站上海十佳装修公司排名
  • 苏州浒关做网站什么网站可以自学ps做贵宾卡
  • 河南省路桥建设集团网站贵州交通建设集团
  • 建设大马路小学网站网站开发工作怎么样
  • 上海建设厅是哪个网站东莞企业网站咨询
  • 那些做电影视频网站的赚钱吗360免费wifi老是掉线怎么办
  • 上每网站建设17zwd一起做业网站
  • 肥西县建设局资询网站平面设计正规培训机构
  • 广告联盟做网站免费制作app平台
  • 硬件开发网站做ppt图片网站 知乎
  • 能量密度的革命:穿透电池从实验室到工厂的迷雾,窥见固态电池的终极未来
  • 官方网站弹幕怎么做永泰建设工程网站
  • 怎样设立网站精神文明建设网站模板
  • 哪一些网站使用vue做的商城网站建设资讯