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

企业免费招聘网站电商网站平台搭建

企业免费招聘网站,电商网站平台搭建,注册一个公司网站的费用,安阳网站关键词优化Starter是什么 #xff1f; Spring Boot 对比 Spring MVC 最大的优点就是使用简单#xff0c;约定大于配置。不用 Spring MVC 的时候#xff0c;时不时被 xml 配置文件搞的晕头转向#xff0c;冷不防还因为 xml 配置上的一点疏忽#xff0c;导致整个项目莫名其妙的不可用…Starter是什么 Spring Boot 对比 Spring MVC 最大的优点就是使用简单约定大于配置。不用 Spring MVC 的时候时不时被 xml 配置文件搞的晕头转向冷不防还因为 xml 配置上的一点疏忽导致整个项目莫名其妙的不可用顿感生无可恋。这要归功于Spring Boot 的各种各样的 starters有官方提供以及第三方开源出来的。这些依赖模块都遵循着约定成俗的默认配置并允许我们根据自身情况调整这些配置。基本上你打算用的功能都可以找到如果没有找到那就请再找一找。SpringBoot 会自动扫描需要加载的信息并启动相应的默认配置。 Starter 提供了以下功能 整合了模块需要的所有依赖统一集合到 Starter 中。提供了默认配置并允许我们调整这些默认配置。提供了自动配置类对模块内的 Bean 进行自动装配注入 Spring 容器中。 Starter 命名规则 Spring 官方定义的 Starter 通常命名遵循的格式为 spring-boot-starter-{name}例如 spring-boot-starter-data-mongodb。Spring 官方建议非官方 Starter 命名应遵循 {name}-spring-boot-starter 的格式例如myjson-spring-boot-starter。 Starter可以用来解决什么问题 日常开发中有一些独立于业务系统之外的配置模块它是可以在不同项目中进行复用的。如果在每个项目中都编写重复的模块代码除了浪费时间和人力耦合性还高。将这些可独立于业务代码之外的功能配置模块封装成一个 Starter在需要用到此功能模块的项目中只需要在其 pom.xml 文件中引用依赖即可。 手写SpringBoot启动器的主要步骤 定义业务接口、需要的实体类等业务对象定义配置属性类、定义自动装配类、Resources目录下新建META-INF/spring.factories加入自定义starter的配置项 idea——new  project——spring initializr——填写group、artifact名称选择java的jdk版本——next ——next——finish pom文件依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance          xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd     modelVersion4.0.0/modelVersion     parent         groupIdorg.springframework.boot/groupId         artifactIdspring-boot-starter-parent/artifactId         version2.4.4/version         relativePath/ !-- lookup parent from repository --     /parent     groupIdcom.example/groupId     artifactIdmy-starter/artifactId     version0.0.1-SNAPSHOT/version     namemy-starter/name     descriptionDemo project for Spring Boot/description     properties         java.version1.8/java.version     /properties     dependencies         dependency             groupIdcom.example/groupId             artifactIdmyjson-spring-boot-starter-autoconfigurer/artifactId             version0.0.1-SNAPSHOT/version         /dependency     /dependencies       build         plugins             plugin                 groupIdorg.springframework.boot/groupId                 artifactIdspring-boot-maven-plugin/artifactId             /plugin         /plugins     /build   /project 在当前工程创建module——name为myjson流程同上?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance          xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd     modelVersion4.0.0/modelVersion     parent         groupIdorg.springframework.boot/groupId         artifactIdspring-boot-starter-parent/artifactId         version2.4.4/version         relativePath/ !-- lookup parent from repository --     /parent     groupIdcom.example/groupId     artifactIdmyjson-spring-boot-starter-autoconfigurer/artifactId     version0.0.1-SNAPSHOT/version     namemyjson-spring-boot-starter-autoconfigurer/name     descriptionDemo project for Spring Boot/description     properties         java.version1.8/java.version     /properties     dependencies         dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-starter/artifactId         /dependency         dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-configuration-processor/artifactId             version2.3.8.RELEASE/version             optionaltrue/optional         /dependency         dependency             groupIdcom.alibaba/groupId             artifactIdfastjson/artifactId             version1.2.73/version         /dependency         dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-autoconfigure/artifactId             version2.3.8.RELEASE/version         /dependency         dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-starter-test/artifactId             scopetest/scope         /dependency     /dependencies       build         plugins             plugin                 groupIdorg.springframework.boot/groupId                 artifactIdspring-boot-maven-plugin/artifactId                 configuration                     mainClasscom.example.myjson.MyjsonApplication/mainClass                     skiptrue/skip                 /configuration             /plugin         /plugins     /build   /project 加红色的三个依赖fastjson是我们需要的第三方依赖其他的spring-boot-configuration-processor 依赖是可选的加入此依赖主要是打包时自动生成配置元信息文件 META-INF/spring-configuration-metadata.json并放入到 jar 中。绿色的artifact是我们自定义starter的名称蓝色的插件依赖是我们 手写starter 定义我们的service业务类主要是对传入的对象转换为json字符串同时在其首位做额外的拼接处理public class MyJsonService {     private String prefixName;     private String suffixName;       public String getPrefixName() {         return prefixName;     }       public void setPrefixName(String prefixName) {         this.prefixName prefixName;     }       public String getSuffixName() {         return suffixName;     }       public void setSuffixName(String suffixName) {         this.suffixName suffixName;     }       public String objectToMyJson(Object obj) {         return prefixName JSON.toJSONString(obj) suffixName;     } } 定义控制的实体类对象public class Person {     private String name;     private int age;     private String address;     public Person(String name, int age, String address) {         super();         this.name name;         this.age age;         this.address address;     }       public String getName() {         return name;     }       public void setName(String name) {         this.name name;     }       public int getAge() {         return age;     }       public void setAge(int age) {         this.age age;     }       public String getAddress() {         return address;     }       public void setAddress(String address) {         this.address address;     } } 定义我们的属性配置类也即yml配置文件中配置的属性/**  * authorcp  * time2021-4-12  * Description: 配置类(类名一般为模块名Properties) cp.json为Starter使用者通过yml配置文件动态修改属性值的变量名前缀  */ ConfigurationProperties(prefix cp.json) public class MyJsonProperties {     // Starter使用者没在配置文件中配置prefixName属性的值时的默认值     public static final String DEFAULT_PREFIX_NAME ;       // Starter使用者没在配置文件中配置suffixName属性的值时的默认值     public static final String DEFAULT_SUFFIX_NAME #;     private String prefixName DEFAULT_PREFIX_NAME;     private String suffixName DEFAULT_SUFFIX_NAME;       public String getPrefixName() {         return prefixName;     }       public void setPrefixName(String prefixName) {         this.prefixName prefixName;     }       public String getSuffixName() {         return suffixName;     }       public void setSuffixName(String suffixName) {         this.suffixName suffixName;     } } 定义自动装配类让spring装配我们的service业务类同时调用我们的属性配置类让业务service类获取到属性配置类的值并进行处理package com.example.myjson.config;   import com.example.myjson.service.MyJsonService; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;   /**  * authorcp  * time2021-4-12  * Description: 自动装配类  */ Configuration ConditionalOnClass(MyJsonService.class) // 表示只有指定的class在classpath上时才能被注册 EnableConfigurationProperties(MyJsonProperties.class) // 激活被ConfigurationProperties注解修饰的类 public class MyJsonConfiguration {     private MyJsonProperties myJsonProperties;       // 自动注入配置类     public MyJsonConfiguration(MyJsonProperties myJsonProperties) {         this.myJsonProperties myJsonProperties;     }       // 创建MyJsonService对象注入到Spring容器中     Bean     ConditionalOnMissingBean(MyJsonService.class)  // 当容器没有此bean时才注册     public MyJsonService myJsonService() {         MyJsonService myJsonService new MyJsonService();         myJsonService.setPrefixName(myJsonProperties.getPrefixName());         myJsonService.setSuffixName(myJsonProperties.getSuffixName());         return myJsonService;     } } 在我们的启动类模块的resources文件下创建META-INF/spring.factories 文件增加如下内容将自动装配的类配置上org.springframework.boot.autoconfigure.EnableAutoConfiguration\ com.example.myjson.config.MyJsonConfiguration 上述工作完成后我们可以使用mvn install命令在本地仓库生成我们手写的starter的jar可以提供给他其他工程依赖引用。也可以快捷的使用idea提供的快捷打包新建一个工程名称为kk流程同1中在pom文件中引入我们的starter依赖?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance          xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd     modelVersion4.0.0/modelVersion     parent         groupIdorg.springframework.boot/groupId         artifactIdspring-boot-starter-parent/artifactId         version2.4.4/version         relativePath/ !-- lookup parent from repository --     /parent     groupIdcom.example/groupId     artifactIdkk/artifactId     version0.0.1-SNAPSHOT/version     namekk/name     descriptionDemo project for Spring Boot/description     properties         java.version1.8/java.version     /properties     dependencies         dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-starter-web/artifactId         /dependency         dependency             groupIdcom.example/groupId             artifactIdmyjson-spring-boot-starter-autoconfigurer/artifactId             version0.0.1-SNAPSHOT/version         /dependency         dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-starter-test/artifactId             scopetest/scope         /dependency     /dependencies       build         plugins             plugin                 groupIdorg.springframework.boot/groupId                 artifactIdspring-boot-maven-plugin/artifactId             /plugin         /plugins     /build   /project 更新maven依赖后可以看我们的自定义starter已经被引入进来在kk工程的resources文件下将application.properties文件改为application.yml并进行如下配置cp:   json:     prefix-name: hello     suffix-name: world 在kkApplication下新建controllerRestController RequestMapping(demo) public class DemoController {     Autowired     private MyJsonService myJsonService;       GetMapping()     public String test() {         Person p new Person(“千与千寻” , 18, 拉斯维加斯);         // 调用服务方法         return myJsonService.objectToMyJson(p);     } } 引入我们自定义启动器中的业务service类启动springboot工程访问http://localhost:8080/demo验证我们的service类即可。 中间问题点在打包自定义启动器类jar包本地仓库时没有添加构建插件导致生成包多了一个BOOT-INF的文件无法被其他工程引用导入自定义service类添加如下构建插件后问题解决 build         plugins             plugin                 groupIdorg.springframework.boot/groupId                 artifactIdspring-boot-maven-plugin/artifactId                 configuration                     mainClasscom.example.myjson.MyjsonApplication/mainClass                     skiptrue/skip                 /configuration             /plugin         /plugins     /build
http://wiki.neutronadmin.com/news/365208/

相关文章:

  • 乐清网站建设做网站799元没有经验可以做新媒体运营吗
  • 软件开发培训南京百度提升优化
  • 如何备份织梦系统做的网站网络营销推广策略
  • 找人做彩票网站有哪些做网站公司找哪家
  • 西安做网站哪家便宜蚌埠市建设学校网站
  • 做公司网站哪个好杭州市江干建设局网站
  • 银川住房和城乡建设局网站网站个人中心wordpress
  • 物流管理网站建设域名解析ip138在线查询
  • 招远网站制作wordpress file upload
  • 盘锦市网站建设wordpress主题建站
  • 马云有没有学过做网站移动开发软件
  • 做企业网站服务器在国外开个网站做英语培训
  • 专业团队图片原图河北百度竞价优化
  • 如何通过网站获取qq网站免费正能量不下载
  • 成都市住房与城乡建设厅网站四川短视频seo优化网站
  • 慈溪网站建设哪家好佛山制作网站设计报价
  • 公司做网站让拍照备案北京互联网公司大厂有哪些
  • 南山网站设计公司工控人如何做自己的网站
  • 成都哪家做网站最好flash网站制作工具
  • 互联网网站建设哪家好做网站备案需要哪些材料
  • 自己建网站流程要学什么如何做网站反链
  • 教育类网站前置审批开发网站需要什么开发工具
  • 网站开发服务协议郑州网站建设 新浪博客
  • 学校网站模板下载网站备案接入ip
  • .我爱你 域名网站wordpress分页diam
  • 电脑网站制作软件亳州市建设工程质量监督站网站
  • 怎么用别人网站做模板介绍小说的网站模板下载地址
  • asp.net 网站修改发布wordpress标题前缀
  • 自己做社交网站吗重庆怎么推广企业网站
  • 广州网站建设 讯度网络wordpress网站服务器