不会代码 怎么做网站,wordpress网站打开速度慢,织梦图片网站模板,公众号制作素材# 代码结构如下#xff1a; 注意【com.chz.myBean.branch】和【com.chz.myBean.main】这两个包是没有生重叠的。 主程序【MyBeanTest1、MyBeanTest2、MyBeanTest3】这两个类是在包【com.chz.myBean.main】下
# 示例代码
【pom.xml】
dependencygroupIdorg.…# 代码结构如下 注意【com.chz.myBean.branch】和【com.chz.myBean.main】这两个包是没有生重叠的。 主程序【MyBeanTest1、MyBeanTest2、MyBeanTest3】这两个类是在包【com.chz.myBean.main】下
# 示例代码
【pom.xml】
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.3.12.RELEASE/version
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactIdversion2.3.12.RELEASE/version
/dependency【application.properties】
server.port8080
spring.application.namemyBeanmanagement.server.port7001
management.endpoints.web.exposure.include*branch.bean.nameI am branch bean【BranchBean.java】
package com.chz.myBean.branch.bean;Slf4j
Getter
Setter
Component
public class BranchBean
{Value(${branch.bean.name:})private String name;
}【BranchController.java】
package com.chz.myBean.branch.controller;Slf4j
RestController
RequestMapping(/branch)
public class BranchController {Autowiredprivate BranchBean branchBean;GetMapping(/test1)public String test1() {return test1: branchBean.getName();}GetMapping(/test2)public String test2() {return test2;}
}【MainBean.java】
package com.chz.myBean.main.bean;Getter
Setter
Component
public class MainBean
{Autowiredprivate BranchBean bean;
}【MainController.java】
package com.chz.myBean.main.controller;Slf4j
RestController
RequestMapping(/main)
public class MainController
{Autowiredprivate MainBean mainBean;GetMapping(/test1)public String test1() {return test1: mainBean.getBean().getName();}GetMapping(/test2)public String test2() {return test2;}
}【MyBeanTest1.java】
package com.chz.myBean.main;SpringBootApplication(scanBasePackages com.chz.myBean.branch,scanBasePackageClasses MyBeanTest1.class
)
public class MyBeanTest1 {public static void main(String[] args) {SpringApplication.run(MyBeanTest1.class, args);}
}上面这个类是最正常的情况扫包的范围放在【SpringBootApplication】后面的结果测试正常。
【MyBeanTest2.java】
package com.chz.myBean.main;ComponentScan(basePackages com.chz.myBean.branch,basePackageClasses MyBeanTest2.class
)
SpringBootApplication(
)
public class MyBeanTest2
{public static void main(String[] args) {SpringApplication.run(MyBeanTest2.class, args);}
}上面这个类扫包的范围不放在【SpringBootApplication】而是放在【ComponentScan】后面的结果测试正常。
【MyBeanTest3.java】
package com.chz.myBean.main;ComponentScan(basePackages com.chz.myBean.branch
)
SpringBootApplication(scanBasePackageClasses MyBeanTest3.class
)
public class MyBeanTest3
{public static void main(String[] args) {SpringApplication.run(MyBeanTest3.class, args);}
}上面这个类放包的范围放在【ComponentScan】和【SpringBootApplication】两个里面后面的结果测试不正常。
# 开始测试
测试1
启动【MyBeanTest1】可以看到【branch】和【main】包里面的bean都扫到了
测试2
关掉【MyBeanTest1】启动【MyBeanTest2】也可以看到【branch】和【main】包里面的bean都扫到了
测试3
关掉【MyBeanTest2】启动【MyBeanTest3】可以看到只有【branch】包里面的bean扫到了。也就是说当【ComponentScan】和【SpringBootApplication】都存在扫包范围时只有【ComponentScan】里面配置的扫包范围会生效。