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

企业网站网站建设电话云服务器费用

企业网站网站建设电话,云服务器费用,展示型网站的特点,贵州省建设银行网站前言 我们在项目开发中都用到Spring#xff0c;知道对象是交由Spring去管理。那么将一个对象加入到Spring容器中#xff0c;有几种方法呢#xff0c;我们来总结一下。 ComponentScan Component ComponentScan可以放在启动类上#xff0c;指定要扫描的包路径#xff1b;…前言 我们在项目开发中都用到Spring知道对象是交由Spring去管理。那么将一个对象加入到Spring容器中有几种方法呢我们来总结一下。 ComponentScan Component ComponentScan可以放在启动类上指定要扫描的包路径该包路径下被Component修饰的类都会被注入到Spring容器中。 import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan;ComponentScan(basePackages com.gs.beanRegister) public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(BootStrap.class);A bean context.getBean(A.class);bean.say();}}com.gs.beanRegister包下 import org.springframework.stereotype.Component;Component public class A {public void say() {System.out.println(这是a);}}注在SpringBoot中由于其自动装配的特性所以ComponentScan可以不加只要Component修饰的类和启动类在同一包下或者在启动类所在包的子包下。 Configuration Bean Configuration用来声明一个配置类如果它的方法被Bean修饰那么该方法返回的对象也会被注入到Spring容器中。   代码方面BootStrap 类不动A类的Component去掉com.gs.beanRegister包下建个配置类 import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Bean;Configuration public class MyConfiguration {Beanpublic A a() {return new A();}}通过Import注解 这个注解可能平时大家接触得不多它有好几种使用方式。 1.直接导入类的class import org.springframework.context.annotation.Import; import org.springframework.context.annotation.AnnotationConfigApplicationContext;Import(A.class) public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(BootStrap.class);A bean context.getBean(A.class);//B bean context.getBean(B.class);bean.say();}}A类不用添加任何注解 public class A {public void say() {System.out.println(这是a);}}2.导入配置类 import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Import;Import(MyConfiguration.class) public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(BootStrap.class);A bean context.getBean(A.class);bean.say();}}import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;// 使用Import导入配置类时Configuration可以不加 //Configuration public class MyConfiguration {Beanpublic A a() {return new A();}}3.导入ImportSelector的实现类 import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Import;Import(MyImportSelector.class) public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(BootStrap.class);A bean context.getBean(A.class);bean.say();}}import org.springframework.context.annotation.ImportSelector; import org.springframework.core.type.AnnotationMetadata;public class MyImportSelector implements ImportSelector {Overridepublic String[] selectImports(AnnotationMetadata metadata) {// 返回要注入的bean的全路径A类不用任何注解修饰// SpringBoot的自动装配就用到了这种方式return new String[] { A.class.getName() };}}4.导入ImportBeanDefinitionRegistrar的实现类 import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Import;Import(MyImportBeanDefinitionRegistrar.class) public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(BootStrap.class);A bean context.getBean(A.class);bean.say();}}import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.type.AnnotationMetadata;public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {Overridepublic void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {// 构建bean的元数据A类不用任何注解修饰// spring-mybatis扫描mapper接口生成代理类就是用的这种方式BeanDefinition definition new RootBeanDefinition(A.class);registry.registerBeanDefinition(a, definition);}}借助FactoryBean接口 实现FactoryBean接口的类除了本身会被注入外getObject方法返回的对象也会被注入到Spring容器中。 import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Import;Import(MyFactoryBean.class) public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(BootStrap.class);A bean context.getBean(A.class);bean.say();}}import org.springframework.beans.factory.FactoryBean;public class MyFactoryBean implements FactoryBean {Overridepublic Object getObject() throws Exception {return new A();}Overridepublic Class? getObjectType() {return A.class;}}借助BeanDefinitionRegistryPostProcessor接口 在Spring容器启动时会调用该接口的postProcessBeanDefinitionRegistry方法大概意思是等BeanDefinition(上面提到的bean的元数据)加载完成后再对它进行后置处理。所以可以在此调整BeanDefinition从而把对应的bean注入。 import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext();BeanDefinitionRegistryPostProcessor postProcessor new MyBeanDefinitionRegistryPostProcessor();context.addBeanFactoryPostProcessor(postProcessor);context.refresh();A a context.getBean(A.class);a.say();}}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.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; import org.springframework.beans.factory.support.RootBeanDefinition;public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {BeanDefinition definition new RootBeanDefinition(A.class);registry.registerBeanDefinition(a, definition);}Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {} }
http://www.tj-hxxt.cn/news/140406.html

相关文章:

  • 营销型网站建设有哪些平台深圳网络推广培训学校
  • 企业网站的建立如何带来询盘wordpress主题首页显示不全
  • 本地怎样上传自己做的网站如何设计大型电商网站建设
  • wordpress表情插件优化seo方案
  • 做宠物店网站的素材横岗做网站公司
  • 网站建设的环境巨久科技网站建设
  • 不收费的网站有哪些公司网站制作教程
  • 淄博做网站的公司学网站开发培训班
  • 北京网站建设优化学校哪个网站做的系统好用吗
  • 怎样注册自己网站的域名抖音推广费用标准
  • 单页网站域名提供深圳网站制作公司
  • 开一家做网站的公司wordpress检测
  • 班级网站怎么做ppt平面设计好的网站
  • ps做简洁大气网站中国建设银行安徽省分行网站
  • 公司网站建设规划wordpress4.7更新说明
  • 网站续费公司软件开发培训学校软件开发培训机构
  • 新泰做网站做网站的快捷方式代码
  • 沈阳网站开发技术公司怎么建设网站让国外看
  • 烟台网站制作策划做家旅游的视频网站好
  • 做家装的有没有网站可以找工作企业管理软件管理系统
  • seo网站建设步骤模板网站建设价格
  • 昌平区手机网站制作服务营销咨询
  • 网站关键词多少个字数 站长网国内网站空间
  • 保护动物网站建设策划书江苏五星建设网站
  • 网站的组织与风格设计怎么在阿里云建立网站
  • 怀安县网站建设怎么做ppt教程网站
  • 用织梦做的网站国家官方网站
  • 广州公司核名在哪个网站长沙移动网站建设哪家好
  • 网站性能容量的收集与分析怎么做站长综合查询工具
  • 学网站开发技术中英文网站建设费用