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

建筑企业资质查询官方网站成都景观设计公司有哪些

建筑企业资质查询官方网站,成都景观设计公司有哪些,如何把wordpress的文章页写成模板,网站制作公司套路目录#xff1a; bean的加载方式(—)bean的加载方式(二)bean的加载方式(三)FactoryBeanproxyBeanMethod属性bean的加载方式(四)bean的加载方式(五)bean的加载方式(六)bean的加载方式(七)bean的加载方式(八)bean加载控制#xff08;编程式)bean加载控制#xff08;注解式)be…目录 bean的加载方式(—)bean的加载方式(二)bean的加载方式(三)FactoryBeanproxyBeanMethod属性bean的加载方式(四)bean的加载方式(五)bean的加载方式(六)bean的加载方式(七)bean的加载方式(八)bean加载控制编程式)bean加载控制注解式)bean依赖属性配置 1.bean的加载方式(—) XML方式声明bean pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.itheima/groupIdartifactIdspringboot_27_bean_init/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.9/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependency/dependencies /project App1.class package cn.hdc.app;import cn.hdc.bean.Dog; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class App1 {public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext1.xml); // Object cat ctx.getBean(cat); // System.out.println(cat); // // Dog dog ctx.getBean(Dog.class); // System.out.println(dog);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}} }Cat.class package cn.hdc.bean;public class Cat { }Dog.class package cn.hdc.bean;public class Dog { }Mouse.class package cn.hdc.bean;public class Mouse { }BookServiceImpl1.class package cn.hdc.service.impl;import cn.hdc.service.BookService;public class BookServiceImpl1 implements BookService {Overridepublic void check() {System.out.println(book service 1...);} }BookServiceImpl2.class package cn.hdc.service.impl;import cn.hdc.service.BookService;public class BookServiceImpl2 implements BookService {Overridepublic void check() {System.out.println(book service 2...);} }BookServiceImpl3.class package cn.hdc.service.impl;import cn.hdc.service.BookService;public class BookServiceImpl3 implements BookService {Overridepublic void check() {System.out.println(book service 3...);} }BookServiceImpl4.class package cn.hdc.service.impl;import cn.hdc.service.BookService;public class BookServiceImpl3 implements BookService {Overridepublic void check() {System.out.println(book service 3...);} }BookService.interface package cn.hdc.service;public interface BookService {void check(); }applicationContext1.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean idcat classcn.hdc.bean.Cat/beanbean classcn.hdc.bean.Dog/beanbean iddataSource classcom.alibaba.druid.pool.DruidDataSource/bean /beans applicationContext2.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd /beans 2.bean的加载方式(二) XML注解方式声明bean 使用Component及其衍生注解Controller . Service、Repository定义bean 使用Bean定义第三方bean并将所在类定义为配置类或Bean applicationContext.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdcontext:component-scan base-packagecn.hdc.bean,cn.hdc.config/ /beans App2.class package cn.hdc.app;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class App2 {public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext2.xml);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}} }Dbconfig.class package cn.hdc.config;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component;Component public class DbConfig {Beanpublic DruidDataSource dataSource() {DruidDataSource ds new DruidDataSource();return ds;} }3.bean的加载方式(三) 注解方式声明配置类 App3.class package cn.hdc.app;import cn.hdc.config.SpringConfig3; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App3 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig3.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}} }SpringConfig3.class package cn.hdc.config;import org.springframework.context.annotation.ComponentScan;ComponentScan({cn.hdc.bean,cn,hdc.config}) public class SpringConfig3 { }4.FactoryBean 注解方式声明配置类 Configuration配置项如果不用于被扫描可以省略 初始化实现FactoryBean接口的类实现对bean加载到容器之前的批处理操作  App4.class package cn.hdc.app;import cn.hdc.config.SpringConfig4; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App4 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig4.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}System.out.println(ctx.getBean(dog));System.out.println(ctx.getBean(dog));System.out.println(ctx.getBean(dog));} }DogFactoryBean.class package cn.hdc.bean;import org.springframework.beans.factory.FactoryBean;public class DogFactoryBean implements FactoryBeanDog {Overridepublic Dog getObject() throws Exception {return new Dog();}Overridepublic Class? getObjectType() {return Dog.class;}Overridepublic boolean isSingleton() {return FactoryBean.super.isSingleton();} }SpringConfig4.class package cn.hdc.config;import cn.hdc.bean.Dog; import cn.hdc.bean.DogFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan;ComponentScan({cn.hdc.bean, cn,hdc.config}) public class SpringConfig4 { // Bean // public Dog dog() { // return new Dog(); // }Beanpublic DogFactoryBean dog() {return new DogFactoryBean();} }5.proxyBeanMethod属性 加载配置类并加载配置文件(系统迁移) App32.class package cn.hdc.app;import cn.hdc.config.SpringConfig32; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App32 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig32.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}} }SpringConfig32.class package cn.hdc.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ImportResource; import org.springframework.stereotype.Component;ComponentScan({cn.hdc.bean, cn,hdc.config}) ImportResource(applicationContext1.xml) Component public class SpringConfig32 { }applicationContext1.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean idcat classcn.hdc.bean.Cat/beanbean classcn.hdc.bean.Dog/beanbean iddataSource classcom.alibaba.druid.pool.DruidDataSource/beanbean classcom.alibaba.druid.pool.DruidDataSource/beanbean classcom.alibaba.druid.pool.DruidDataSource/bean /beans 使用proxyBeanMethodstrue可以保障调用此方法得到的对象是从容器中获取的而不是重新创建的 App33.class package cn.hdc.app;import cn.hdc.config.SpringConfig33; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App33 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig33.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}System.out.println(----------------------------);SpringConfig33 springConfig33 ctx.getBean(springConfig33, SpringConfig33.class);System.out.println(springConfig33.cat());System.out.println(springConfig33.cat());System.out.println(springConfig33.cat());} }SpringConfig33.class package cn.hdc.config;import cn.hdc.bean.Cat; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration(proxyBeanMethods false) public class SpringConfig33 {Beanpublic Cat cat() {return new Cat();} }6.bean的加载方式(四) 使用Import注解导入要注入的bean对应的字节码 被导入的bean无需使用注解声明为bean  此形式可以有效的降低源代码与Spring技术的耦合度在spring技术底层及诸多框架的整合中大量使用 使用lmport注解导入配置类 App4.class package cn.hdc.app;import cn.hdc.bean.Dog; import cn.hdc.config.SpringConfig4; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App4 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig4.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}System.out.println(-----------------);System.out.println(ctx.getBean(Dog.class));} }SpringConfig4.class package cn.hdc.config;import cn.hdc.bean.Dog; import org.springframework.context.annotation.Import;Import({Dog.class, DbConfig.class}) public class SpringConfig4 {}7.bean的加载方式(五) 使用上下文对象在容器初始化完毕后注入bean App5.class package cn.hdc.app;import cn.hdc.bean.Cat; import cn.hdc.bean.Mouse; import cn.hdc.config.SpringConfig5; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App5 {public static void main(String[] args) {AnnotationConfigApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig5.class);ctx.registerBean(tom, Cat.class, 0);ctx.registerBean(tom, Cat.class, 1);ctx.registerBean(tom, Cat.class, 2);ctx.register(Mouse.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}System.out.println(ctx.getBean(Cat.class));} }SpringConfig5.class package cn.hdc.config;public class SpringConfig5 {}Cat.class package cn.hdc.bean;import org.springframework.stereotype.Component;Component(tom) public class Cat {int age;public Cat() {}public Cat(int age) {this.age age;}Overridepublic String toString() {return Cat{ age age };} }Dog.class package cn.hdc.bean;import org.springframework.stereotype.Service;//Service(jerry) public class Mouse { }8.bean的加载方式(六) 导入实现了ImportSelector接口的类实现对导入源的编程式处理 App6.class package cn.hdc.app;import cn.hdc.config.SpringConfig6; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App6 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig6.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}} }SpringConfig.class package cn.hdc.config;import cn.hdc.bean.MyImportSelector; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import;Import(MyImportSelector.class) Configuration //ComponentScan(basePackages cn.hdc) public class SpringConfig6 {}MyImportSelector.class package cn.hdc.bean;import org.springframework.context.annotation.ImportSelector; import org.springframework.core.type.AnnotationMetadata;import java.util.Map;public class MyImportSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata metadata) { // System.out.println(); // System.out.println(提示 metadata.getClassName()); // System.out.println(metadata.hasAnnotation(org.springframework.context.annotation.Configuration)); // MapString, Object attributes metadata.getAnnotationAttributes(org.springframework.context.annotation.ComponentScan); // System.out.println(attributes); // System.out.println();boolean flag metadata.hasAnnotation(org.springframework.context.annotation.Configuration);if (flag) {return new String[]{cn.hdc.bean.Dog};}return new String[]{cn.hdc.bean.Cat};} }9.bean的加载方式(七) 导入实现了ImportBeanDefinitionRegistrar接口的类通过BeanDefinition的注册器注册实名bean实现对容器中bean的裁定例如对现有bean的覆盖进而达成不修改源代码的情况下更换实现的效果 App7.class package cn.hdc.app;import cn.hdc.config.SpringConfig7; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App7 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig7.class);String[] names ctx.getBeanDefinitionNames();for (String name : names) {System.out.println(name);}} }SpringConfig7.class package cn.hdc.config;import cn.hdc.bean.MyRegistar; import org.springframework.context.annotation.Import;Import(MyRegistar.class) public class SpringConfig7 {}MyRegistar.class package cn.hdc.bean;import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanNameGenerator; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.type.AnnotationMetadata;public class MyRegistar implements ImportBeanDefinitionRegistrar {Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) {BeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(Dog.class).getBeanDefinition();registry.registerBeanDefinition(red, beanDefinition);} }10.bean的加载方式(八) 导入实现了BeanDefinitionRegistryPostProcessor接口的类通过BeanDefinition的注册器注册实名bean,实现对容器中bean的最终裁定 App8.class package cn.hdc.app;import cn.hdc.bean.service.BookService; import cn.hdc.config.SpringConfig8; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App8 {public static void main(String[] args) {ApplicationContext ctx new AnnotationConfigApplicationContext(SpringConfig8.class);BookService bookService ctx.getBean(bookService, BookService.class);bookService.check();} }SpringConfig8.class package cn.hdc.config;import cn.hdc.bean.MyPostProcessor; import cn.hdc.bean.MyRegistar; import cn.hdc.bean.MyRegistar2; import cn.hdc.bean.service.impl.BookServiceImpl1; import org.springframework.context.annotation.Import;Import({BookServiceImpl1.class, MyRegistar.class, MyRegistar2.class, MyPostProcessor.class}) public class SpringConfig8 {}MyRegistar.class package cn.hdc.bean;import cn.hdc.bean.service.BookService; import cn.hdc.bean.service.impl.BookServiceImpl2; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanNameGenerator; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.type.AnnotationMetadata;public class MyRegistar implements ImportBeanDefinitionRegistrar {// Override // public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) { // BeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(Dog.class).getBeanDefinition(); // // registry.registerBeanDefinition(red, beanDefinition); // }Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) {BeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(BookServiceImpl2.class).getBeanDefinition();registry.registerBeanDefinition(bookService, beanDefinition);} }MyRegistar2.class package cn.hdc.bean;import cn.hdc.bean.service.impl.BookServiceImpl2; import cn.hdc.bean.service.impl.BookServiceImpl3; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanNameGenerator; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.type.AnnotationMetadata;public class MyRegistar2 implements ImportBeanDefinitionRegistrar {// Override // public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) { // BeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(Dog.class).getBeanDefinition(); // // registry.registerBeanDefinition(red, beanDefinition); // }Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, BeanNameGenerator importBeanNameGenerator) {BeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(BookServiceImpl3.class).getBeanDefinition();registry.registerBeanDefinition(bookService, beanDefinition);} }MyPostProcessor.class package cn.hdc.bean;import cn.hdc.bean.service.impl.BookServiceImpl4; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;public class MyPostProcessor implements BeanDefinitionRegistryPostProcessor {Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {BeanDefinition beanDefinition BeanDefinitionBuilder.rootBeanDefinition(BookServiceImpl4.class).getBeanDefinition();registry.registerBeanDefinition(bookService, beanDefinition);}Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {} }BookServiceImpl1.class package cn.hdc.bean.service.impl;import cn.hdc.bean.service.BookService; import org.springframework.stereotype.Service;Service(bookService) public class BookServiceImpl1 implements BookService {Overridepublic void check() {System.out.println(book service 1...);} }BookServiceImpl2.class  package cn.hdc.bean.service.impl;import cn.hdc.bean.service.BookService;public class BookServiceImpl2 implements BookService {Overridepublic void check() {System.out.println(book service 2...);} }BookServiceImpl3.class   package cn.hdc.bean.service.impl;import cn.hdc.bean.service.BookService;public class BookServiceImpl3 implements BookService {Overridepublic void check() {System.out.println(book service 3...);} }BookServiceImpl4.class   package cn.hdc.bean.service.impl;import cn.hdc.bean.service.BookService;public class BookServiceImpl4 implements BookService {Overridepublic void check() {System.out.println(book service 4...);} }11.bean加载控制编程式) 根据任意条件确认是否加载bean Cat.class package cn.hdc.bean;import org.springframework.stereotype.Component;Component(tom) public class Cat { }Dog.class package cn.hdc.bean;public class Dog { }Mouse.class package cn.hdc.bean;public class Mouse { }MyImportSelector.class package cn.hdc.bean;import org.springframework.context.annotation.ImportSelector; import org.springframework.core.type.AnnotationMetadata;public class MyImportSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata annotationMetadata) {try {Class? clazz Class.forName(cn.hdc.bean.Mouse);if (clazz ! null) {return new String[]{cn.hdc.bean.Cat};}} catch (ClassNotFoundException e) {return new String[0];}return null;} }SpringConfig.class package cn.hdc.config;import cn.hdc.bean.MyImportSelector; import org.springframework.context.annotation.Import;Import(MyImportSelector.class) public class SpringConfig { }App.class package cn.hdc;import cn.hdc.config.SpringConfig; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class App {public static void main(String[] args) {ApplicationContext context new AnnotationConfigApplicationContext(SpringConfig.class);String[] beans context.getBeanDefinitionNames();for (String bean : beans) {System.out.println(bean);}} }12.bean加载控制注解式) 根据任意条件确认是否加载bean 使用Conditional注解的派生注解设置各种组合条件控制bean的加载 匹配指定类 未匹配指定类 匹配指定类型的bean 匹配指定名称的bean 匹配指定环境 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdspringboot_28_bean_load/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdversion2.5.4/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.26/version/dependency/dependencies/project Cat.class package cn.hdc.bean;import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.stereotype.Component;Component(tom) ConditionalOnBean(name jerry) //ConditionalOnWebApplication ConditionalOnNotWebApplication public class Cat { }Dog.class package cn.hdc.bean;public class Dog { }Mouse.class package cn.hdc.bean;import org.springframework.stereotype.Component;Component(jerry) public class Mouse { }MyImportSelector.class package cn.hdc.bean;import org.springframework.context.annotation.ImportSelector; import org.springframework.core.type.AnnotationMetadata;public class MyImportSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata annotationMetadata) {try {Class? clazz Class.forName(cn.hdc.bean.Mouse);if (clazz ! null) {return new String[]{cn.hdc.bean.Cat};}} catch (ClassNotFoundException e) {return new String[0];}return null;} }SpringConfig.class package cn.hdc.config;import cn.hdc.bean.Cat; import cn.hdc.bean.Dog; import cn.hdc.bean.Mouse; import cn.hdc.bean.MyImportSelector; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.autoconfigure.condition.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Import;//Import(MyImportSelector.class) //Import(Mouse.class) ComponentScan(cn.hdc.bean) public class SpringConfig { // BeanConditionalOnClass(name cn.hdc.bean.Mouse)ConditionalOnMissingClass(cn.hdc.bean.Wolf) // ConditionalOnBean(name jerry)ConditionalOnMissingClass(cn.hdc.bean.Dog) // ConditionalOnNotWebApplicationConditionalOnWebApplication // public Cat tom() { // return new Cat(); // }BeanConditionalOnClass(name com.mysql.jdbc.Driver)public DruidDataSource dataSource() {return new DruidDataSource();} }13.bean依赖属性配置 将业务功能bean运行需要的资源抽取成独立的属性类******Properties)设置读取配置文件信息 配置文件中使用固定格式为属性类注入数据 定义业务功能bean通常使用Import导入解耦强制加载bean 使用EnableConfigurationProperties注解设定使用属性类时加载bean pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.6/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIdspringboot_29_bean_properties/artifactIdversion0.0.1-SNAPSHOT/versionnamespringboot_29_bean_properties/namedescriptionspringboot_29_bean_properties/descriptionpropertiesjava.version8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationimagebuilderpaketobuildpacks/builder-jammy-base:latest/builder/image/configuration/plugin/plugins/build/projectCartoonCatAndMouse.class package com.example.springboot_29_bean_properties.bean;import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils;Data EnableConfigurationProperties(CartoonProperties.class) public class CartoonCatAndMouse {private Cat cat;private Mouse mouse;private CartoonProperties cartoonProperties;public CartoonCatAndMouse(CartoonProperties cartoonProperties) {this.cartoonProperties cartoonProperties;cat new Cat();cat.setName(cartoonProperties.getCat() ! null StringUtils.hasText(cartoonProperties.getCat().getName()) ? cartoonProperties.getCat().getName() : tom);cat.setAge(cartoonProperties.getCat() ! null cartoonProperties.getCat().getAge() ! null ? cartoonProperties.getCat().getAge() : 3);mouse new Mouse();mouse.setName(cartoonProperties.getMouse() ! null StringUtils.hasText(cartoonProperties.getCat().getName()) ? cartoonProperties.getMouse().getName() : jerry);mouse.setAge(cartoonProperties.getMouse() ! null cartoonProperties.getMouse().getAge() ! null ? cartoonProperties.getMouse().getAge() : 4);}public void play() {System.out.println(cat.getAge() 岁的 cat.getName() 和 mouse.getAge() 岁的 mouse.getName() 打起来了);} }CartoonProperties.class package com.example.springboot_29_bean_properties.bean;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties;ConfigurationProperties(prefix cartoon) Data public class CartoonProperties {private Cat cat;private Mouse mouse; }Cat.class package com.example.springboot_29_bean_properties.bean;import lombok.Data;Data public class Cat {private String name;private Integer age; }Mouse.class package com.example.springboot_29_bean_properties.bean;import lombok.Data;Data public class Mouse {private String name;private Integer age; }Springboot29BeanPropertiesApplicaiton.class package com.example.springboot_29_bean_properties;import com.example.springboot_29_bean_properties.bean.CartoonCatAndMouse; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Import;SpringBootApplication Import(CartoonCatAndMouse.class) public class Springboot29BeanPropertiesApplication {public static void main(String[] args) {ConfigurableApplicationContext ctx SpringApplication.run(Springboot29BeanPropertiesApplication.class, args);CartoonCatAndMouse bean ctx.getBean(CartoonCatAndMouse.class);bean.play();} }小结 业务bean的属性可以为其设定默认值当需要设置时通过配置文件传递属性业务bean应尽量避免设置强制加载而是根据需要导入后加载降低spring容器管理bean的强度
http://wiki.neutronadmin.com/news/260923/

相关文章:

  • 网站后台一般是用什么做的贵阳网络科技有限公司
  • php用什么做网站服务器电子商务网站建设与管理课程的意义
  • 企业网站建设用语怎么做送餐网站
  • 一个人做网站好做吗中国砖瓦招聘求职平台
  • 域名已有服务器也有怎么做网站怎么做网站里的资讯
  • 创新的沈阳网站建设名师工作室网站建设
  • 外链网站推荐百度搜索推广产品
  • 做考勤的网站广西建设职业技术学院图书馆网站
  • 搜狐快站怎么样企业qq下载官网下载安装
  • 西安百度关键词排名公司遵义网站建设优化公司
  • 现在互联网有什么平台可以做深圳网站的优化
  • 建设网站要买空间吗什么网站最好
  • 宿迁网站推广天津都有哪些制作网站
  • 建设一个旅游平台网站需要多少资金wordpress文章导入插件
  • 中交建设集团天津公司网站注册一个公司网站需要多少钱
  • 怎么免费构建自己的网站用c语言做网站
  • wordpress 4.9 站群手机html编辑器哪个好
  • icp备案网站信息wordpress主题添加
  • 网站开发类专业服务文案wordpress适合中文主题
  • 个人博客网站制作搭建广州市增城区住房和建设局网站
  • 汕头seo网站推广费用盐城市建设工程网站
  • 申请网站域名空间百度关键词排名技术
  • 怎么建企业自己的网站吗网站建设的自查整改报告
  • qq建设网站虚拟主机商
  • 用jsp做婚纱网站的流程文山网站建设兼职
  • 网站开发技术选型经营网站挣钱
  • 网站推广排名公司wordpress mp3播放器
  • 上海做网站的公司联系方式上海做网站建设公司
  • 代做课件的网站包装设计灵感网站
  • 学校网站建设情况说明书wordpress 表单