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

广州红盾信息门户网站企业网站建设框架

广州红盾信息门户网站,企业网站建设框架,视频网站点击链接怎么做,安徽建设工程信息网怎么打不开了Spring Framework 作为一个领先的企业级开发框架#xff0c;以其强大的依赖注入#xff08;Dependency Injection#xff0c;DI#xff09;机制而闻名。DI使得开发者可以更加灵活地管理对象之间的关系#xff0c;而不必过多关注对象的创建和组装。在Spring Framework中以其强大的依赖注入Dependency InjectionDI机制而闻名。DI使得开发者可以更加灵活地管理对象之间的关系而不必过多关注对象的创建和组装。在Spring Framework中依赖注入可以分为两种类型根据Bean名称注入、根据Bean类型注入在本文中我们将聚焦于 Spring 中的一种依赖注入方式——按类型注入并通过一个简单的示例来说明其使用和优势。 什么是依赖注入 don’t call us, we’ll call you 依赖注入是一种先进的设计思想它通过外部注入依赖对象来实现组件之间的松耦合。在 Spring 框架中依赖注入的核心实现便是通过控制反转Inversion of ControlIoC容器。IoC 容器负责实例化、配置和组装应用中的对象并在需要时将它们智能地注入到其他对象中。相较于传统的面向对象思想当业务代码变得复杂时通过直接使用 new 进行对象构造对象间的关系容易导致代码耦合度的上升。Spring 通过控制反转巧妙地解决了这一问题运用了好莱坞原则的理念不要给我们打电话我们会给你打电话。这种思想使得代码更加灵活、可维护并促使了更优雅的代码结构。 Spring 中的依赖注入 在 Spring 中依赖注入有多种方式包括构造函数注入、Setter 方法注入、接口注入等。示例中展示的是一种基于 XML 配置的 Setter 方法注入。 构造函数注入的案例 public class UserService {private final EmailService emailService;// 构造函数注入public UserService(EmailService emailService) {this.emailService emailService;}public void sendWelcomeEmail(String username) {String message Welcome, username !;emailService.sendEmail(welcomeexample.com, message);} }Setter 方法注入的案例 public class NotificationServiceClient {private NotificationService notificationService;// Setter 方法注入public void setNotificationService(NotificationService notificationService) {this.notificationService notificationService;}public void sendNotification(String message) {notificationService.notifyUser(message);} }接口注入的案例 public class LoggingService {private Logger logger;// 接口注入public void setLogger(Logger logger) {this.logger logger;}public void logMessage(String message) {logger.log(message);} }在本文中以知名IP小马哥在《小马哥讲 Spring 核心编程思想》中使用的代码案例展开。 Github源码 GeekTime dependency-injection-context.xml !-- 通过导入复用 dependency-lookup-context.xml -- import resourcedependency-lookup-context.xml/!-- Auto-Wiring: 按类型注入 -- bean iduserRepository classorg.thinging.in.spring.ioc.overview.repository.UserRepository autowirebyType /beandependency-lookup-context.xml: ?xml version1.0 encodingUTF-8? beansxmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd!-- context:annotation-config/--!-- context:component-scan base-packageorg.acme /--!-- Root BeanDefinition 不需要合并不存在 parent --!-- 普通 beanDefinition GenericBeanDefinition --!-- 经过合并后 GenericBeanDefinition 变成 RootBeanDefinition --bean iduser classorg.geekbang.thinking.in.spring.ioc.overview.domain.Userproperty nameid value1/property namename value小马哥/property namecity valueHANGZHOU/property nameworkCities valueBEIJING,HANGZHOU/property namelifeCitieslistvalueBEIJING/valuevalueSHANGHAI/value/list/propertyproperty nameconfigFileLocation valueclasspath:/META-INF/user-config.properties//bean!-- 普通 beanDefinition GenericBeanDefinition --!-- 合并后 GenericBeanDefinition 变成 RootBeanDefinition并且覆盖 parent 相关配置--!-- primary true , 增加了一个 address 属性 --bean idsuperUser classorg.geekbang.thinking.in.spring.ioc.overview.domain.SuperUser parentuserprimarytrueproperty nameaddress value杭州//beanbean idobjectFactory classorg.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBeanproperty nametargetBeanName valueuser//bean /beans在这个例子中我们通过 XML 配置文件导入了 dependency-lookup-context.xml并配置了一个名为 userRepository 的 UserRepository Bean并通过 autowire“byType” 实现了自动按类型注入。这样Spring 容器会在运行时查找并注入与 UserRepository 类型匹配的 User 对象。 UserRepository 类 public class UserRepository {/*** 自定义Bean*/private CollectionUser users;public CollectionUser getUsers() {return users;}public void setUsers(CollectionUser users) {this.users users;} }UserRepository 类中定义了一个名为 users 的集合属性并提供了相应的 Getter 和 Setter 方法。通过 Setter 方法我们可以在 Spring 容器中配置的时候注入一组 User 对象。 主程序 public static void main(String[] args) {// 配置 XML 配置文件// 启动 Spring 应用上下文BeanFactory beanFactory new ClassPathXmlApplicationContext(classpath:/META-INF/dependency-injection-context.xml);UserRepository userRepository beanFactory.getBean(userRepository, UserRepository.class);System.out.println(userRepository.getUsers()); }在主程序中我们通过 ClassPathXmlApplicationContext 加载了 XML 配置文件获取了名为 userRepository 的 UserRepository Bean并输出了其中包含的 User 对象集合。 结论 通过这个简单的示例我们了解了 Spring Framework 中依赖注入的基本原理。依赖注入通过控制反转容器实现使得应用程序中的对象不再负责管理自己的依赖关系而是由 IoC 容器负责。这种设计模式降低了组件之间的耦合度提高了代码的可测试性和可维护性是 Spring 成功的关键之一。在实际项目中我们可以根据需求选择适合的依赖注入方式使代码更加清晰、灵活且易于维护。 后续内容文章持续更新中… 近期发布。 关于我 你好我是Debug.c。微信公众号种颗代码技术树 的维护者一个跨专业自学Java对技术保持热爱的bug猿同样也是在某二线城市打拼四年余的Java Coder。 在掘金、CSDN、公众号我将分享我最近学习的内容、踩过的坑以及自己对技术的理解。 如果您对我感兴趣请联系我。 若有收获就点个赞吧喜欢原图请私信我。
http://www.hkea.cn/news/14408201/

相关文章:

  • 湖北省两学一做网站wordpress 分类菜单高亮
  • 中信建设 官方网站外贸网站建设公司信息
  • 动态公司网站设计建设部注册网站
  • 学做早餐网站网站开发用了哪些技术
  • 网站做关键词排名大数据网站怎么做
  • 邢台做wap网站多少钱宣传推广图片
  • 韩国食品网站设计欣赏区域名查询
  • 港口建设征收 申报网站网站生成移动版
  • 网站 备案 哪个省做调查问卷的网站知乎
  • 知乎 做照片好的网站做短视频网站
  • 商城建设公司宁波百度快照优化排名
  • wordpress免费中文搜索优化排名
  • 网站前台怎么做做网站能自己找服务器吗
  • 整站优化价格河北建设工程信息网换成什么网址了
  • 做网站推广工作赚钱吗wordpress使用文档
  • 为什么辽宁省城乡建设厅网站打不开网站源码制作
  • 做网站广告语网站开通宣传怎么写
  • 企业网站icp备案与网站建设关系密切的知识点
  • 我想注册网站怎么做泉州网站建设费用
  • 高流量网站设计在线广告设计与制作
  • 做搜狗网站优化首wordpress页面显示错乱
  • 江苏个人网站备案要求建设网站 目标
  • 重庆建设人才网站建设一个网站的流程
  • ru如何制作网站wordpress中英文标题
  • 营销网站结构西安小程序搭建
  • 营口市住房建设保障办官方网站企业网站建设 cms
  • 廊坊建设网站智慧餐厅管理系统
  • 某网站seo诊断分析赣州企业网站建设
  • 做网站要学的知识wordpress邮件发文章
  • 哈尔滨网站关键字优化选择建设网站公司要注意什么