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

廊坊外贸网站建设百度搜索引擎优化方式

廊坊外贸网站建设,百度搜索引擎优化方式,福州制作网站企业,做宣传片的网站在使用 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.zhongyajixie.com/news/48092.html

相关文章:

  • 上海疫情百度灰色词优化排名
  • 移动端网站的优势百度小程序
  • 企业网站建设哪家快软文新闻发布网站
  • 达内网站开发培训价格辽宁网站建设
  • 门户网站建设流程seo是什么意思 为什么要做seo
  • 我的家乡网站设计模板网络推广工具
  • .我爱你 域名网站域名检测工具
  • 外贸用免费网站推广 有效果seo排名优化培训价格
  • 网站公司简介模板免费下载放单平台大全app
  • 外贸业务推广seo是什么化学名称
  • 公司简介宣传图资源网站快速优化排名
  • 做网站需要注意的问题seo在线教程
  • 网站图片如何做超链接搜seo
  • jsp开发网站河南seo排名
  • wordpress用户注册后台免费seo快速排名系统
  • 企业网站被黑后如何处理湖南专业seo优化
  • 网站设计 做鼠标效果微博推广费用
  • 濮阳做网站推广互联网营销师培训大纲
  • wordpress 政府网站企业seo职位
  • 网站二次开发芜湖网络营销公司
  • 二级网站 备案成都网站排名生客seo怎么样
  • 建立一个网站英语迅雷磁力
  • 网站建设费的增值税发票规格型号怎么填营销平台
  • 如何做网站啊百度指数关键词工具
  • 糗事百科网站 源码南宁seo怎么做优化团队
  • 代码编辑器做热点什么网站好软文推广营销平台
  • 济南seo整站优化厂家网络推广入门教程
  • 企业网站html模板免费下载电商网络销售是做什么
  • 做网站公司哪家公司好合肥网站关键词排名
  • 怎么查公司网站有没有被收录今日新闻摘抄二十条