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

公司网站别人做的怎么签合同网页制作与网站建设...

公司网站别人做的怎么签合同,网页制作与网站建设...,网页设计图片居右代码,中国商标网商标查询官网查询目录 一、Bean生命周期的五个阶段 Bean的初始化 二、PostConstruct 和 PreDestroy 各自的效果 三、 实例化和初始化的区别 四、为什么要先设置属性在进⾏初始化呢#xff1f; 一、Bean生命周期的五个阶段 Java 中的公共类称之为 Bean 或 Java Bean#xff0c;而 Spring 中的…  目录 一、Bean生命周期的五个阶段 Bean的初始化 二、PostConstruct 和 PreDestroy 各自的效果 三、 实例化和初始化的区别 四、为什么要先设置属性在进⾏初始化呢 一、Bean生命周期的五个阶段 Java 中的公共类称之为 Bean 或 Java Bean而 Spring 中的 Bean 指的是将对象的生命周期交个 Spring IoC 容器来管理的对象。所以 Spring 中的 Bean 对象在使用时无需通过 new 来创建对象只需要通过 DI依赖注入从 Spring 中取出要使用的对象即可。 Bean作为一个Java对象具有一定的生命周期。它的生命周期包括以下几个阶段 实例化在Java应用程序中Bean对象是通过new关键字或者反射机制来实例化的。在这个阶段Bean对象被创建并分配了内存空间。设置属性(Bean注入和装配)初始化当Bean对象被创建后需要进行初始化包括设置属性值、执行一些初始化操作等。在Spring框架中Bean的初始化可以通过配置文件中的init-method属性进行指定。使用在Bean初始化之后它就可以被应用程序使用了。在使用过程中Bean可能会调用其他对象的方法从而导致其他Bean对象被实例化和初始化。销毁当Bean对象不再被使用时应该将其销毁并释放占用的内存空间。在Spring框架中Bean的销毁可以通过配置文件中的destroy-method属性进行指定。 总的来说Bean对象的生命周期可以通过实例化、初始化、使用和销毁这几个阶段来描述。在Spring框架中Bean的生命周期还可以通过BeanPostProcessor接口来进行扩展和定制。 为了便于理解  我们引用一个现实中的事件来形容   Bean 的⽣命流程看似繁琐但咱们可以以⽣活中的场景来理解它⽐如我们现在需要买⼀栋房⼦那么我们的流程是这样的 1. 先买房实例化从⽆到有 2. 装修设置属性 3. 买家电如洗⾐机、冰箱、电视、空调等[各种]初始化 4. ⼊住使⽤ Bean 5. 卖出去Bean 销毁。  Bean的初始化 执行各种通知(BeanNameAware、BeanFactoryAware)等接口方法初始化的前置方法(PostConstruct)初始化方法初始化的后置方法(PreDestroy) 下面用代码演示整个Bean的生命周期: 我们用构造方式来展示实例化的效果 ,实例化和属性设置是 Java 级别的系统“事件”其操作过程不可⼈⼯⼲预和修改  所以下面没有演示设置属性 package com.example.bean.test;import org.springframework.beans.factory.BeanNameAware; import org.springframework.stereotype.Component;import javax.annotation.PostConstruct; import javax.annotation.PreDestroy;Component public class BeanLifeComponent implements BeanNameAware {private String name;public BeanLifeComponent() {System.out.println(实例化方法执行拉);}public void setBeanName(String s) {System.out.println(执行 BeanName 的通知方法);}PostConstructpublic void postConstruct() {System.out.println(初始化方法执行);}public void use() {System.out.println(使用 Bean);}PreDestroypublic void preDestroy() {System.out.println(销毁方法执行);} }因为初始化的前置方法和后置方法是为所有 Bean 服务的而非为某一个 Bean 服务的所以这两个方法不能写在某个具体的 Bean 中否则这两个方法不会执行。 所以我们另外创建一个类来实现这两个方法 package com.example.bean.test;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.stereotype.Component;Component public class MyBeanPostProcessor implements BeanPostProcessor {Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if (beanName.equals(beanLifeComponent)) {System.out.println(初始化前置方法执行);}return bean;}Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if (beanName.equals(beanLifeComponent)) {System.out.println(初始化后置方法执行);}return bean;} }在得到上下文对象这里  因为我们是使用springboot演示的 所以我们使用ConfigurableApplicationContext 来得到上下文对象 package com.example.bean.test;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext;SpringBootApplication public class DemoApplication {public static void main(String[] args) {// 得到上下文对象并启动 Spring Boot 项目ConfigurableApplicationContext context SpringApplication.run(DemoApplication.class, args);// 获取 BeanBeanLifeComponent component context.getBean(BeanLifeComponent.class);// 使用 Beancomponent.use();// 停止 Spring Boot 项目context.close();} } 结果如下:  二、PostConstruct 和 PreDestroy 各自的效果 当Bean被容器初始化之后会调用PostConstruct的注解方法。当Bean在容器销毁之前调用被PreDestroy注解的方法 代码如下:所以PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上以执行任何初始化。此方法必须在将类放入服务之前调用。支持依赖关系注入的所有类都必须支持此注释。即使类没有请求注入任何资源用PostConstruct 注释的方法也必须被调用。只有一个方法可以用此注释进行注释。 PostConstructpublic void doPostConstruct(){System.out.println(执行了 新版本PostConstruct 前置初始化方法);}PreDestroypublic void doPreDestroy(){System.out.println(执行新版本 PreDestroy 销毁方法);} PreDestroy 用与在依赖注入完成之前的方法前面执行遵守准则 该方法不得有任何参数该方法的返回类型必须为 void该方法不得抛出已检查异常应用 PostConstruct 的方法可以是 public、protected、package private 或 private该方法不能是 static该方法可以是 final该方法只会被执行一次 三、 实例化和初始化的区别 实例化和属性设置是 Java 级别的系统“事件”其操作过程不可⼈⼯⼲预和修改⽽初始化是给开发者提供的可以在实例化之后类加载完成之前进⾏⾃定义“事件”处理。 四、为什么要先设置属性在进⾏初始化呢 仔细观察下面代码: Servicepublic class UserService {public UserService(){System.out.println(调⽤ User Service 构造⽅法);}public void sayHi(){System.out.println(User Service SayHi.);}} Controllerpublic class UserController {Resourceprivate UserService userService;PostConstructpublic void postConstruct() {userService.sayHi();System.out.println(执⾏ User Controller 构造⽅法);}} 我们可以发现很是为了避免空指针异常。
http://www.hkea.cn/news/14586667/

相关文章:

  • 网站开发安全郑州网站开发设计公司电话
  • 网站外链宁波网站建设最好
  • 电力建设规范下载网站wordpress不显示评论
  • 企业网站建立步骤深圳的网站建设公司
  • 大学生活动网站开发文案网站分辨率做96是否会更好
  • 网站开发 技术投标郑州网站托管公司哪家好
  • 营销公司网站网站制作合肥
  • tomcat 网站开发php空间购买
  • 建设网站的结束语中云建设集团网站
  • 网站建设前期如何做好市场定位分析科技部 咖啡
  • 佛山定制网站建设wordpress表单统计插件下载
  • 刷单做任务的网站宣传视频制作
  • 网站建设公司怎么运营稷山网站制作
  • 专门做喷涂设备的网站郑州一站式网站搭建
  • 网站建设开票内容些什么百度明星人气榜排名
  • 商丘市网站建设推广建材网站建设方案
  • 打开网址跳转到国外网站wordpress柒比貳
  • 房地产网站建设需求说明书wordpress打开过慢
  • 正规的营销型网站建设公司网站标签中的图片怎么做的
  • 网站建设的资源哪里弄详情页设计模板图片
  • 网站线上投票怎样做余姚企业网站建设公司
  • 高端营销型企业网站建设利用wordpress的page
  • 网站设计建设 公司有没有网站做lol网站的
  • 网站的分析与设计视频网站如何做
  • 青州做网站东莞app开发定制
  • 仿cnzz 网站 源码北京建站免费模板
  • html网站开发相关书籍中国电建成都设计院
  • 杭州画廊网站建设互联网产品设计
  • 淄博周村网站建设定制公司的网站如何进行修改布局
  • 南京制作网站电子政务网站建设ppt