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

江门提供网站制作平台哪里有竞价推广托管

江门提供网站制作平台,哪里有竞价推广托管,网站排名优化工具,0311网站建设在使用 Spring 框架后,对象以 Bean 的形式统一交给 IOC 容器去创建和管理。现阶段主流的方式是基于 SpringBoot 框架,基于注解的方式实现 Bean 的创建,但在原生 Spring 框架中其实存在三种创建 Bean 的方式。 一、基础类 BeanProcess 实体类…

在使用 Spring 框架后,对象以 Bean 的形式统一交给 IOC 容器去创建和管理。现阶段主流的方式是基于 SpringBoot 框架,基于注解的方式实现 Bean 的创建,但在原生 Spring 框架中其实存在三种创建 Bean 的方式。

一、基础类

  1. BeanProcess 实体类,虽然加了 @Component 等三个注解,但只在注解方式创建 Bean 时用到了。
package com.nineya.spring.entity;import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;@Getter
@Setter
@Component("test")
public class BeanProcess {private String name;@PostConstructpublic void init() {System.out.println("Bean InitMethodName");}@PreDestroypublic void destroy() {System.out.println("Bean DestroyMethodName");}}
  1. 后置处理器类

BeanPostProcessor 后置处理器。

package com.nineya.spring.processor;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;@Component
public class NineyaBeanPostProcessor implements BeanPostProcessor {@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println("BeanPostProcessor.postProcessAfterInitialization(" + beanName + ") 后置处理器");return bean;}@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println("BeanPostProcessor.postProcessBeforeInitialization(" + beanName + ") 后置处理器");return bean;}
}

BeanFactoryPostProcessor 后置处理器。

package com.nineya.spring.processor;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.stereotype.Component;@Component
public class NineyaBeanFactoryPostProcessor implements BeanFactoryPostProcessor {@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {System.out.println("BeanFactoryPostProcessor.postProcessBeanFactory 后置处理器");}
}

二、三种创建方式

2.1 JavaApi 方式

JavaApi 方式没有注册 BeanFactoryPostProcessor 后置处理器的接口,应该在注册添加完所有 BeanDefinition 后,手动调用执行 BeanFactoryPostProcessor 后置处理器方法。

private static void javaApi() {// 创建bean工厂DefaultListableBeanFactory context = new DefaultListableBeanFactory();//构造bean定义GenericBeanDefinition gbd = new GenericBeanDefinition();gbd.setBeanClass(BeanProcess.class);// 设置属性List<PropertyValue> propertyValues = new ArrayList<>();propertyValues.add(new PropertyValue("name", "test"));gbd.setPropertyValues(new MutablePropertyValues(propertyValues));// 设置生命周期方法gbd.setInitMethodName("init");gbd.setDestroyMethodName("destroy");//注册到环境上下文context.registerBeanDefinition("test", gbd);context.addBeanPostProcessor(new NineyaBeanPostProcessor());new NineyaBeanFactoryPostProcessor().postProcessBeanFactory(context);// 通过class取得beanBeanProcess beanProcess = context.getBean(BeanProcess.class);System.out.println(beanProcess + " : " + beanProcess.hashCode());
}

2.2 xml方式

创建 beanxml 文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean class="com.nineya.spring.entity.BeanProcess" name="test" init-method="init" destroy-method="destroy"><property name="name" value="test" /></bean><!-- 注册处理器 --><bean class="com.nineya.spring.processor.NineyaBeanPostProcessor"/><bean class="com.nineya.spring.processor.NineyaBeanFactoryPostProcessor"/>
</beans>

读取 xml 文件创建 bean 工厂。

private static void xmlFile() {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");// 通过class取得beanBeanProcess beanProcess = context.getBean(BeanProcess.class);System.out.println(beanProcess + " : " + beanProcess.hashCode());
}

2.3 注解方式

private static void annotation() {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();// 配置注解扫描路径context.scan(BeanLifecycleMain.class.getPackage().getName());context.refresh();// 通过class取得beanBeanProcess beanProcess = context.getBean(BeanProcess.class);System.out.println(beanProcess + " : " + beanProcess.hashCode());
}
http://www.ds6.com.cn/news/122370.html

相关文章:

  • 大学网站首页设计竞价推广课程
  • 长沙市建设厅官方网站google收录查询
  • 佛山 顺德营销型网站设计爱站网域名查询
  • 做免费的小说网站可以赚钱吗seo服务加盟
  • 网站飘动简述seo的应用范围
  • 未备案个人网站 如何挣钱百度推广的费用
  • 设计平台网站推文关键词生成器
  • 公司网站建设管理李勇seo的博客
  • 沈阳单页网站制作广州网络广告推广公司
  • 做网站简单还是写程序关键词查询网站的工具
  • 做外贸都有哪些好网站淘宝怎么优化关键词步骤
  • 嵌入式网站开发学习重庆seo杨洋
  • 汕头免费建设网站制作简单网站建设优化推广
  • 做博客网站需要工具吗原创文章代写
  • wordpress bt主题重庆seo薪酬水平
  • 军人运动会官方网站建设目标上海网络推广专员
  • 张家界做网站公司百度权重3的网站值多少
  • 徐州seo管理东莞公司seo优化
  • wordpress修改产品价格搜索引擎优化seo论文
  • wordpress文章在那个文件夹百度推广优化怎么做的
  • 网站上社保做增员怎么做seo优化顾问
  • 怎样用模块做网站鞍山seo优化
  • iis5.1 新建网站推广引流吸引人的标题
  • 网站建设原则包括哪些内容seo和sem分别是什么
  • 做外贸需要几个网站南京关键词网站排名
  • php网站开发工作描述怎样建立自己网站
  • 网站设计推广方案学做网站需要学什么
  • 中医院网站素材nba最新消息新闻报道
  • 上海协策网站宁波seo深度优化平台
  • 安徽省和城乡建设厅网站旺道seo