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

商贸公司网站模板做网站备案的问题

商贸公司网站模板,做网站备案的问题,网站对不同分辨率,jsp旅游网站的建设深入理解Spring的ApplicationContext:案例详解与应用 在Spring框架的丰富生态中,ApplicationContext扮演着至关重要的角色。作为BeanFactory的扩展,ApplicationContext不仅继承了其所有功能,还引入了更多高级特性,使得…

深入理解Spring的ApplicationContext:案例详解与应用

在Spring框架的丰富生态中,ApplicationContext扮演着至关重要的角色。作为BeanFactory的扩展,ApplicationContext不仅继承了其所有功能,还引入了更多高级特性,使得Spring容器的管理更加灵活和方便。本文将结合CSDN上的一篇热门文章,通过案例学习,带您深入了解ApplicationContext的基础概念和应用场景。

ApplicationContext与BeanFactory的对比

ApplicationContext通常被称为Spring上下文,它是BeanFactory的派生接口,提供了更多面向实际应用的功能。ApplicationContext能够通过配置方式实现许多BeanFactory需要编程实现的功能,使得Spring容器的管理更加灵活和方便。

特性ApplicationContextBeanFactory
范围企业级基础级
配置支持消息资源、事件发布等仅支持基础的bean管理
AOP内置AOP支持
事件支持应用程序事件
类型转换提供类型转换服务

案例学习:ApplicationContext的应用

为了更好地理解ApplicationContext,我们将通过一个简单的案例来学习它的使用。我们将创建两个User对象,一个配置为单例(singleton),另一个配置为多例(prototype)。

创建User对象

首先,我们定义一个简单的User类:

@Data
public class User {private String id;private String name;private Integer age;
}

配置ApplicationContext

接下来,我们创建一个名为applicationContext.xml的Spring配置文件:

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- singleton --><bean id="UserSingleton" class="com.example.User" scope="singleton"p:id="1" p:name="辰兮" p:age="22"/><!-- prototype --><bean id="UserPrototype" class="com.example.User" scope="prototype"p:id="2" p:name="辰兮要努力" p:age="23"/></beans>

测试ApplicationContext

现在,我们创建一个测试类来学习ApplicationContext的使用:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;public class ApplicationContextDemo {private static final Logger logger = LoggerFactory.getLogger(ApplicationContextDemo.class);public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");// Singleton: 单实例User user = applicationContext.getBean("UserSingleton", User.class);User user1 = applicationContext.getBean("UserSingleton", User.class);logger.info("user.hashCode() is:{}", user.hashCode());logger.info("user1.hashCode() is:{}", user1.hashCode());logger.info("user is:{}", user);logger.info("user1 is:{}", user1);logger.info("user == user1 :{}", user == user1);// Prototype: 多实例User user3 = applicationContext.getBean("UserPrototype", User.class);User user4 = applicationContext.getBean("UserPrototype", User.class);logger.info("user3.hashCode() is:{}", user3.hashCode());logger.info("user4.hashCode() is:{}", user4.hashCode());logger.info("user3 is:{}", user3);logger.info("user4 is:{}", user4);logger.info("user3 == user4 :{}", user3 == user4);}
}

执行代码

控制台日志输出将显示单例bean的两个引用指向同一个对象,而多例bean每次获取都是一个新的实例:

user.hashCode() is:1446002
user1.hashCode() is:1446002
user is:User(id=1, name=辰兮, age=22)
user1 is:User(id=1, name=辰兮, age=22)
user == user1 :true
user3.hashCode() is:266875004
user4.hashCode() is:266875004
user3 is:User(id=2, name=辰兮要努力, age=23)
user4 is:User(id=2, name=辰兮要努力, age=23)
user3 == user4 :false

代码逻辑

  • 创建Spring的工厂类:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
  • 通过工厂解析XML获取Bean实例:
User user = (User) applicationContext.getBean("UserSingleton");

拓展补充

  • 对象相等则hashCode一定相等;
  • hashCode相等对象未必相等。

使用==比较两个对象,可以复习一下Spring作用域相关知识点。

ApplicationContext总结

如果说BeanFactory是Spring的心脏,那么ApplicationContext就是完整的身躯了。ApplicationContextBeanFactory派生而来,提供了更多面向实际应用的功能,是“应用的容器”。

结语

通过本文的学习,您应该对ApplicationContext有了更深入的理解。它不仅是Spring框架的核心组件,也是您在构建企业级应用程序时的得力助手。希望本文能够帮助您在实际开发中更好地利用ApplicationContext,构建出更加健壮和可维护的应用程序。

http://www.yayakq.cn/news/608289/

相关文章:

  • 网站推广代理免费晋江网站建设
  • 上海 餐饮网站建设做网站和c 哪个好
  • 广州网站平台怎么做网站开发产生的材料
  • 在国内可以做国外的网站吗南昌网站建设方案推广
  • 射阳做网站的公司中国国家人事人才培训网证书查询
  • wordpress 页面归类手机网站怎么做seo
  • 深圳网站推广优住房及城乡建设部信息中心网站
  • 制作一个简单的php网站二级学院网站建设自评报告
  • 厦门网站流量优化价格防止入侵网站
  • 唐河县住房和城乡建设局网站网站建设与管理自简历
  • 芜湖网站建设推广wordpress doaction
  • 怎么识别一个网站免费网站建设公司推荐
  • 微信官方微网站吗遵义房产信息网
  • 建设行政主管部门官方网站百度搜到自己的网站
  • 搜钛建站做网站4000-262-263
  • 如何才能做好品牌网站建设策划中国室内装饰设计网
  • 扬州网站建设文章高端建站用什么软件
  • 自己如何在家做网站做简历比较好的网站叫什么
  • 建设网站 关于竣工结算的期限网站建设招聘要求
  • 徐州集团网站建设流程适合女生的十大热门专业
  • 宁波网站设计服务网络优化师是什么工作
  • 手机网站设计模板在线做图的网站
  • 营销网站建设情况调查问卷企业官网网站模板下载
  • 东莞网络推广网站郑州免费网站制作
  • 做外贸的网站公司苏州推广排名
  • 安溪哪里有学做网站网站服务器哪个好
  • 网站被篡改处理广州哪里好玩的景点推荐
  • 网站建设的不足wordpress打不开仪表盘
  • 濮阳手机网站建设最新新闻有哪些
  • 做旅游网站的工作流程图wordpress用微信登录