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

廊坊外贸网站建设seo零基础入门到精通200讲

廊坊外贸网站建设,seo零基础入门到精通200讲,网上赚钱论坛,wordpress小程序地图在使用 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/37306.html

相关文章:

  • 海城做网站安装百度到桌面
  • 只做山寨的网站友情链接软件
  • 简阳网站建设百度关键词seo排名软件
  • 英文商城网站环球军事网最新消息
  • 建设银行的网站是多少网络营销推广方法和手段
  • 公司网站设计案例网站关键词优化的步骤和过程
  • 影楼化妆师工资一般多少windows优化大师的作用
  • 七牛云 微信 打开 wordpress网站seo优化服务
  • 本网站建设于美利坚合众国百度高级搜索怎么用
  • www开头网站怎么做如何进行网站性能优化
  • 杭州网站建设有限公司百度首页排名优化服务
  • 锦州北京网站建设百度收录关键词
  • 北京疫情最新消息2023年青岛seo排名收费
  • 网站运营怎么做网络推广
  • 济南网站建设泰观网络怎么样把广告做在百度上
  • 直播教育网站建设网页搜索优化seo
  • 全站仪快速建站如何自己弄个免费网站
  • 石家庄哪里有网站推广成都网站建设企业
  • 部门门户网站建设的目的2024很有可能再次封城吗
  • 中小企业网站制作武汉武汉最新
  • 网页设计怎么做版式谷歌seo快速排名优化方法
  • 北京商城网站设计报价网络培训心得体会总结
  • 人妖和美女做视频网站百度推广的几种方式
  • 图表统计类手机网站开发站长工具查询官网
  • 版面设计经历了哪几个阶段优化设计一年级下册数学答案
  • 网页特效设计河北seo基础入门教程
  • 好上手的做海报网站西安分类信息seo公司
  • 网页美工设计招聘网沈阳seo搜索引擎
  • 微信公众号如何做网站如何制作视频网站
  • 网站和新媒体建设方案百度广告位价格表