您现在的位置是:主页 > news > 做电商需要哪些网站/优化推广关键词
做电商需要哪些网站/优化推广关键词
admin2025/4/25 20:16:07【news】
简介做电商需要哪些网站,优化推广关键词,给我一个可以看片的免费,淘宝刷单网站制作技术/杨33一、SpringBoot做的自动配置确实方便快捷,执行下面这个启动类,就可以加载完成项目的所有依赖组件。package com.test.demo.springbootdemo01;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigur…
技术/杨33
一、SpringBoot做的自动配置确实方便快捷,执行下面这个启动类,就可以加载完成项目的所有依赖组件。
package com.test.demo.springbootdemo01;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringbootDemo01Application { public static void main(String[] args) { SpringApplication.run(SpringbootDemo01Application.class, args); }}
项目中的其他包必须与此类在同级目录或者子包下 ,否则扫描不到。

项目中的其他包必须与此类在同级目录或者子包下
二、只有一个注解@SpringBootApplication和一个run方法是怎么实现自动配置的?
分别说一下这两个的原理到底是什么?
1、注解@SpringBootApplication
- 打开@SpringBootApplication源码
看到重要的三个注解@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

@SpringBootApplication源码
- 注解@SpringBootConfiguration的源码又是@Configuration
标注了@Configuration,那么它就是一个Spring IOC容器的基于JavaConfig的配置类。
标注了@Bean,那么方法的返回值作为一个bean注册到Spring IOC容器中,方法名getHelloService()对应ioc容器的id。
对比下Java代码和XML配置分别实现注册bean
下面代码是基于JavaConfig的配置类实现注册bean,以及bean与bean之间的依赖关系
package com.test.demo.springbootdemo01.config;import com.test.demo.springbootdemo01.service.HelloService;import com.test.demo.springbootdemo01.service.UserService;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author yang33 * @date 2020/4/18 23:06 */@Configurationpublic class BootConfig { /** * 将HelloService组件添加到容器中,方法名getHelloService()对应ioc容器的id */ @Bean public HelloService getHelloService() { return new HelloServiceImpl(userService()); } @Bean public UserService userService() { return new UserServiceImpl(); }}
下面代码是基于XML文件的配置实现注册bean,以及bean与bean之间的依赖关系
<?xml version="1.0" encoding="UTF-8"?>
- 注解@ComponentScan的功能
其实就是自动扫描加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到Spring IOC容器中。
我们可以通过basePackages等属性来细粒度的定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。
所以SpringBoot的启动类最好是放在root package下,因为默认不指定basePackages。
注解@EnableAutoConfiguration的功能
里面最关键的是@Import({AutoConfigurationImportSelector.class}),借助AutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的Spring IOC容器。
2、run方法
执行run方法,做了两件事。
第一,创建SpringApplication对象,new SpringApplication(primarySources);
第二,运行run方法,run(args)。
public static ConfigurableApplicationContext run(Class>[] primarySources, String[] args) { return (new SpringApplication(primarySources)).run(args);}
三、SpringBoot自定义启动器starter
启动器只用来做依赖导入,专门写一个自动配置模块。启动器依赖自动配置,使用时只需要引入启动器(starter)。
启动器就是个空jar文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他库。
1、启动器starter命名规范
- 自定义命名规范
模块名-spring-boot-starter
- 官方命名规范
spring-boot-starter-模块
2、配置自定义启动器需要两个项目
他俩的关系是启动器依赖自动配置。
- xxx-starter,别的项目引用,只需引入该启动器即可,提供辅助性依赖管理。
- xxx-autoconfigure,自动配置,给启动器提供依赖。
3、IDEA工具创建项目
- 先创建启动器starter项目 demostarters

步骤1

步骤2

步骤3

步骤5

步骤6

步骤7
- 在创建一个自动配置的项目 demo-spring-boot-starter-autoconfigure

步骤1

步骤2

步骤3

步骤5

步骤6
最终创建的两个项目:启动器项目和自动配置项目,如图:

启动器项目和自动配置项目
4、代码实现两个项目
- 启动器依赖自动配置,在启动器项目的pom.xml文件中添加自动配置项目的依赖
com.demo.starters demo-spring-boot-starter-autoconfigure 0.0.1-SNAPSHOT
- 添加一个UserService类
package com.demo.starters;/** * @author 杨33 * @date 2020/4/22 17:57 */public class UserService { /** * 用户名 */ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }}
- 再添加一个配置类UserServiceAutoConfiguration
package com.demo.starters;import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author 杨33 * @date 2020/4/22 18:40 */@Configuration@ConditionalOnWebApplicationpublic class UserServiceAutoConfiguration { /** * 实现userService对象的初始化赋值 * @return */ @Bean public UserService getUserName() { UserService userService = new UserService(); userService.setName("张三"); return userService; }}
- spring.factories中给UserServiceAutoConfiguration.java设置自动配置
spring.factories文件的存放目录必须在类路径的META-INF下。
spring.factories的配置内容:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.demo.starters.UserServiceAutoConfiguration
项目的代码层级如图:

自动配置项目的代码层级
- 分别添加启动器项目和自动配置项目到maven仓库,供外部其他项目依赖

install到maven仓库
5、在外部项目,使用自定义的starter
- pom.xml文件引入自定义的starter依赖
com.demo.starters demo-spring-boot-starter 1.0-SNAPSHOT
- java代码调用自定义的依赖提供的API
package com.test.demo.springbootdemo01.controller;import com.demo.starters.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * @author yang33 * @date 2020/4/18 15:42 */@RestControllerpublic class HelloWordController { @Autowired UserService userService; /** * 取自定义依赖中userService对象的初始化赋值 * @return */ @GetMapping("/query") public String query() { return userService.getName(); }}
- 启动SpringBoot项目,访问http://localhost:8080/query,取到了来自自定义starter依赖包中的值。

取到了自定义依赖中的值
作者:杨33,北京互联网公司在职Java开发,专注分享写作干货。欢迎关注我,期待你的点赞评论。
Spring Boot系列知识,下章节内容更加有料。