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

网站建设文案模板个人域名备案流程详细

网站建设文案模板,个人域名备案流程详细,站点建错了网页能打开吗,医院关于建设官方网站的请示文章目录 一. 关于Bean作用域的实例1. lombok2. 实例代码 二. 作用域定义1. Bean的六种作用域2. 设置作用域 三. Spring 执行流程和 Bean 的生命周期1. Spring 执行流程2. Bean生命周期 一. 关于Bean作用域的实例 注意在此例子中需要用到lombok 1. lombok lombok是什么? Lo… 文章目录 一. 关于Bean作用域的实例1. lombok2. 实例代码 二. 作用域定义1. Bean的六种作用域2. 设置作用域 三. Spring 执行流程和 Bean 的生命周期1. Spring 执行流程2. Bean生命周期 一. 关于Bean作用域的实例 注意在此例子中需要用到lombok 1. lombok lombok是什么? Lombok 是一个 Java 库它通过注解的方式来简化 Java 代码的编写。它提供了一组注解让我们可以通过在代码中添加这些注解来自动生成样板式的代码如 getter、setter、构造函数、toString 等。 使用 Lombok 可以有效地减少冗余的样板代码提高代码的可读性和开发效率。不需要手动编写大量的 getter 和 setter 方法也不需要重复编写 equals、hashCode 和 toString 方法等。通过简单地添加几个注解Lombok 会在编译时自动生成这些常见的方法和实现。 lombok的使用: 在框架中添加lombok依赖. 在实体类上使用lombok提供的注解. 安装lombok插件 2. 实例代码 Users: package com.java.demo.enity;import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Controller;Controller public class Users {Beanpublic User user1(){User user new User();user.setId(1);user.setName(xxxflower);return user;} } UserControlle: package com.java.demo.controller;import com.java.demo.enity.User; import org.springframework.stereotype.Controller;import javax.annotation.Resource;Controller public class UserController {Resourceprivate User user1;public User UserPrint1() {User user user1;System.out.println(Bean 原 Name user.getName());user.setName(且听风吟); // 进⾏了修改操作System.out.println(UserController 修改后 Name: user.getName());return user;} } UserController2: package com.java.demo.controller;import com.java.demo.enity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller;Controller public class UserController2 {Autowiredprivate User user1;public User UserPrint2() {User user user1;System.out.println(user.toString());return user;} } App: package com.java.demo;import com.java.demo.controller.UserController; import com.java.demo.controller.UserController2; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Controller;Controller public class App {public static void main(String[] args) {ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);UserController userController context.getBean(userController,UserController.class);System.out.println(userController.UserPrint1());UserController2 userController2 context.getBean(userController2,UserController2.class);System.out.println(userController2.UserPrint2());} } 代码预计运行结果: 代码实际运行结果: 我们可以看到上述第三行代码和我们预计的结果不符,这是为什么呢? 以上问题的原因是Bean默认情况下采用的是单例状态.(singleton),也就是所有的人使用的都是同一个Bean对象.在我们之前学习过的单例模式中,采用单例模式可以很大程度上提高性能,所以在Spring中Bean的作用域默认也是 singleton 单例模式. 二. 作用域定义 限定程序中变量的可⽤范围叫做作⽤域或者说在源代码中定义变量的某个区域就叫做作⽤域。 而 Bean 的作用域是指 Bean 在 Spring 整个框架中的某种⾏为模式.比如 singleton 单例作⽤域就表示 Bean 在整个 Spring 中只有⼀份它是全局共享的那么当其他⼈修改了这个值之后那么另⼀个⼈读取到的就是被修改的值。 1. Bean的六种作用域 Spring 容器在初始化⼀个 Bean 的实例时同时会指定该实例的作⽤域。Spring有 6 种作⽤域最后四种是基于 Spring MVC ⽣效的 单例模式: singleton(默认模式) - 性能的考虑原型模式: prototype请求作用域:request每次 HTTP请求都会创建一个Bean对象。【适用于Spring MVC/Spring Web】会话作用域:session每次Session会话共享一个Bean。【Spring MVC】全局作用域: application一个http servlet context 中共享一个bean。【Spring MVC】webscoket: 网络长连接只适用于Spring WebSocket 项目。 注意后 4 种状态是 Spring MVC 中的值在普通的 Spring 项⽬中只有前两种. singleton 官⽅说明(Default) Scopes a single bean definition to a single object instance for each Spring IoC container.描述该作⽤域下的Bean在IoC容器中只存在⼀个实例获取Bean即通过applicationContext.getBean等⽅法获取及装配Bean即通过Autowired注⼊都是同⼀个对 象。场景通常⽆状态的Bean使⽤该作⽤域。⽆状态表示Bean对象的属性状态不需要更新 备注Spring默认选择该作⽤域 prototype 官⽅说明Scopes a single bean definition to any number of object instances.描述每次对该作⽤域下的Bean的请求都会创建新的实例获取Bean即通过applicationContext.getBean等⽅法获取及装配 Bean即通过Autowired注⼊都是新的对象实例。场景通常有状态的Bean使⽤该作⽤域 request 官⽅说明Scopes a single bean definition to the lifecycle of a single HTTP request. That is, each HTTP request has its own instance of a bean created off the back of a single bean definition. Only valid in the context of a web-aware Spring ApplicationContext.描述每次http请求会创建新的Bean实例类似于prototype场景⼀次http的请求和响应的共享Bean备注限定SpringMVC中使⽤ session 官⽅说明Scopes a single bean definition to the lifecycle of an HTTP Session. Only valid in the context of a web-aware Spring ApplicationContext.描述在⼀个http session中定义⼀个Bean实例场景⽤户回话的共享Bean, ⽐如记录⼀个⽤户的登陆信息备注限定SpringMVC中使⽤ 2. 设置作用域 使⽤ Scope 标签就可以⽤来声明 Bean 的作⽤域⽐如设置 Bean 的作⽤域如下代码所示 package com.java.demo.enity;import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller;Controller public class Users {//使用Scope声明Bean作用域Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)Beanpublic User user1(){User user new User();user.setId(1);user.setName(xxxflower);return user;} } 运行结果: 我们可以看到,在使用prototype时运行结果与预期结果相同. 关于Scope的写法有两种: 直接设置值Scope(prototype)使⽤枚举设置Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) 三. Spring 执行流程和 Bean 的生命周期 1. Spring 执行流程 在main方法中遇到Application时启动spring容器。此时根据容器设置的配置文件去找相应配置文件。如果存在basepackage 。此时去循环查看basepackage中是否有五大类注解。如果有五大类注解此时进行初始化和属性依赖的赋值。操作spring依赖 读修改 书写业务关闭容器 释放资源 图解: Bean 执⾏流程Spring 执⾏流程启动 Spring 容器 - 实例化 Bean分配内存空间从⽆到 有 - Bean 注册到 Spring 中存操作 - 将 Bean 装配到需要的类中取操作)。 2. Bean生命周期 Bean 的生命周期是指一个 Bean 在被创建、初始化、使用和销毁的整个过程。 Bean 生命周期从诞生到销毁过程: 开辟内存空间:实例化≠初始化设置属性注入属性)初始化 3.1 各种通知 3.2 初始化前置方法 3.3 初始化方法【两种实现方式: xml 方式、注解方式】 3.4 初始化后置方法使用 Bean销毁Bean对象 销毁容器的各种⽅法如 PreDestroy、DisposableBean 接⼝⽅法、destroy-method。 注意:一定是先设置属性,再初始化.因为初始化的时候可能用到属性的内容. 生命周期演示: 首先我们创建一个名为 ExampleBean 的 Java 类实现了 Spring 的 InitializingBean 和 DisposableBean 接口这两个接口提供了在 Bean 初始化和销毁时的回调方法。 import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean;public class ExampleBean implements InitializingBean, DisposableBean {public ExampleBean() {System.out.println(ExampleBean 构造函数);}Overridepublic void afterPropertiesSet() throws Exception {System.out.println(ExampleBean 初始化方法);}public void doSomething() {System.out.println(ExampleBean 执行业务逻辑);}Overridepublic void destroy() throws Exception {System.out.println(ExampleBean 销毁方法);} } 然后在 Spring 的配置文件中声明该 Bean并将其注入到其他类中使用 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contenthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsdcontent:component-scan base-packagecom.java.demo/content:component-scanbean idexampleBean classcom.java.demo.ExampleBean scopesingleton init-methodafterPropertiesSet destroy-methoddestroy//beans 在上述配置中我们将 ExampleBean 声明为一个 singleton 的 Bean并指定了初始化方法为 afterPropertiesSet销毁方法为 destroy。 接下来我们创建一个简单的测试类 ExampleApp 来使用 ExampleBean package com.java.demo;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class ExampleApp {public static void main(String[] args) {// 加载 Spring 的配置文件ApplicationContext context new ClassPathXmlApplicationContext(spring-config.xml);// 获取 ExampleBean 实例ExampleBean exampleBean context.getBean(exampleBean,ExampleBean.class);// 执行业务逻辑exampleBean.doSomething();// 关闭 Spring 容器触发 Bean 的销毁方法try {exampleBean.destroy();} catch (Exception e) {e.printStackTrace();}} } 运行 ExampleApp 类结果如下: 需要注意的是Bean 的生命周期可以进一步通过添加自定义的初始化和销毁方法来扩展。可以使用 PostConstruct 和 PreDestroy 注解或者在 Spring 配置文件中通过 init-method 和 destroy-method 属性来指定自定义的初始化和销毁方法。
http://www.zqtcl.cn/news/46798/

相关文章:

  • 产品经理兼职做网站报酬莱芜生活网
  • 长沙网站设计哪里好网站建设开户行
  • 源码搭建网站流程规范门户网站的建设和管理办法
  • 百度云网站建设视频教程哪里做企业网站
  • 建设局网站模板服务器做两个网站
  • 锦州市做网站如何设置网站关键字
  • 重庆旅游网站建设公司网络推广方案范文
  • 外贸快车做网站怎么样企业网站建设 骆诗设计
  • 用群晖做网站公司注册地址要求
  • 湖北金扬建设网站各种网站开发工具
  • 网站建设移动网络公司网站建设案列
  • 西安外贸网站建设做二手车网站怎么做的
  • 个人业务网上平台百度快速seo软件
  • 网站开发的难点国家卫生健康官网入口
  • 做网站用个人还是企业比较好营销方案100例免费
  • wdcp搭建网站想要提高网站排名应该怎么做
  • 网站域名备案证书下载网站seo解决方案
  • 株洲知名网站建设iis 网站权限
  • 做网站后端要学什么男科医院网站模板
  • 深圳微信网站建设公司哪家好郑州比较正规的装修公司
  • 排行网站模板wordpress saas 建站
  • 做网站需要资料wordpress 分类 文章列表
  • 做餐饮连锁加盟如何选网站推广网站备案各种问题汇总
  • 松阳建设网站电商平台链接怎么弄
  • 那个网站攻略做的好wordpress 传值
  • 网站建设哪家技术好大连网站优化技术
  • 买网站服务器吗企业网站建设合同书.doc
  • 视频网站建设的背景简介360浏览器显示2345网址导航
  • 手机网站 好处有哪些静态网站
  • 东莞网站建设在哪里wordpress怎么实现会员登录