Java_PicoContainer

Java IoC容器对比:Spring vs Guice vs PicoContainer 想象一下你开了一家奶茶店:从前台点单到制作奶茶,需要杯子、茶叶、奶精、糖等“依赖”。如果每次做奶茶都要自己去仓库拿杯子、煮茶叶、调奶精(手动管理依赖),不仅效率低,还容易出错(比如拿错杯子尺寸)。这时候你需要一个“奶茶助手”——专门负责准备好所有材料,你只需要喊一声“我要做奶茶”,助手就把材料递过来(自动注入依赖)。这个“助手”就是IoC容器。将对象的创建、依赖管理的控制权从代码内部转移到外部容器。 阅读详情

Inversion of Control is three things: component dependencies and configuration, but also Component Lifecycle

(一)       PicoContainer's Architecture

1)       Design Patterns(设计原则)

2)       Inversion of Control(Martin fowler03)

3)       Component Adapters()

ComponentAdapters are probably PicoContainer's most highly misunderstood (and coincidentally, most powerful) feature. They combine the power of an object factory, and an object interceptor rolled into one.

有4个功能:

第一:Instantiation and Injectors,即如何注入并创建;

第二:Post Instantiation Modification using Behaviors;

第三:Changing the default ComponentAdapter for a new PicoContainer;

第四:Changing the default ComponentAdapter when registering objects.

4)       Mock Objects(测试)

5)       Terminology(术语)

6)       Container Comparisons

Spring/EJB/Servlets/Applets

7)       Transparency

(二)       Container Choices(容器选择)

1)       DefaultPicoContainer

Parameters in its constructors can be:

Ø  Behavior Factories or Component Factories(已经实验过)

Ø  Lifecycle Strategies(已经实验过,但还是不清楚)

Ø  Component Monitors(还没有实验过)

Ø  Parent Containers of various types(已经实验过,容器结构等)

2)       CommandLinePicoContainer(从命名行接口参数的封装)

3)       PropertiesPicoContainer(从 properties file加载参数)

4)       SystemPropertiesPicoContainer(从System Properties)

5)       TransientPicoContainer(暂时存在,de-referenced shortly after use)

6)       TieringPicoContainer: is the same as DefaultPicoContainer, except that child containers can only seek to locate unsatisfied injection dependencies for their immediate parent container. Their grandparents are out of bounds for dependency resolution.

(三)       Scoped Containers(容器关系)

PicoContainer's scope hinges on parent/child container relationships. From a PicoContainer instance you can make a child container via makeChildContainer() or addChildContainer(..).

(四)       Advanced Concepts

1.       Fluent Style

http://www.martinfowler.com/bliki/FluentInterface.html

 

(五)       Specific Behaviors特性

1.       缓存:(基本缓存,线程缓存,存储Session/Storing<HttpSession, ThreadLocal>)
2.       Implementation Hiding(即不能根据具体类型获取实现,Hot Swapping)
3.       Thread Safety(同步/锁)

pico = new DefaultPicoContainer(new Synchronizing().wrap(new Caching()));

pico = new DefaultPicoContainer(new Locking().wrap(new Caching()));

(更有效)

4.       Interception(AOP/侵入性还是强)
pico:Pico是Java的持久性集合库 微微 Pico是Java的持久性集合库 立即下载

相关推荐

picojava-II CPU源代码

全verilog代码,带jtag调试硬件,非常全的参考 PicoJava-II.rar (435.93 KB, 下载次数: 86 ) cpu , fpga , verilog , 处理器

pico container 入门介绍

pico container , 依赖注入

gs_albb的博客 790

Pinocchio 安装教程|机器人学的必备库

安装pinocchio,不要安装pip3 install pinocchio!

darcsdn 1660

PicoContainer基础介绍

基础 这是一篇PicoContainer最重要特性的快速介绍。读完你能对PicoContainer是什么和不是什么有一个概念。 PicoContainer最重要的特性是实例化任意对象。这些通过它的API完成,这些API类似于HashTable。你向PicoContainer指定java.lang.Class对象,之后能够获得对象实例。 例子: 1.    MutablePicoCont

谨慎对事 低调行事 0与1的世界 浩瀚如海 学无止境 1237

【实战】ComfyUI-Impact-Subpack插件安装与UltralyticsDetectorProvider节点修复全流程

本文详细解析了ComfyUI中UltralyticsDetectorProvider节点缺失的原因,并提供了完整的ComfyUI-Impact-Subpack插件安装与修复全流程。核心在于Impact Pack插件架构调整导致节点被拆分至子插件包。指南涵盖手动安装、依赖安全配置、模型文件管理及深度排错步骤,帮助用户彻底解决节点缺失问题,恢复工作流正常运行。

weixin_29290947的博客 437

【电驱动】永磁同步电机工作原理及分类

永磁同步电机工作原理及分类

星Yeah 的博客 7323

PicoContainer java工程开源容器

(1)为什么需要容器? 容器可以统一管理所有的类。比如 一个接口,多个实现,那么就是通过容器的方法很方便的就获取到所有的实现。 在基本的中间件的使用中,这个PicoContainer 也是被经常使用的,管理基本的类,可以从jar包中加载类 (2)WEB层 一般都喜欢使用Spring容器,来管理所有的类。Applicationcontext就是容器,这个容器提供了很多方法,可以根据名字获取实例,根据注解获取所有的类 很方便业务的扩展, 我工作了几年才真正的明白,为什么需要容器,容器中的生命周期 应.

红豆和绿豆的博客 301

[WeChatMsg]导出csv格式微信聊天记录的手把手教程

手把手教大家如何导出自己的聊天记录得到csv文件,即使是电脑小白也可以轻松学会o(* ̄▽ ̄*)ブ

weixin_51094633的博客 1万+

pico complier java_考虑在你的程序中集成 picocontainer或spring...框架

实现和接口分离,使用和组装分离是一个基本的对象设计原则,简单的工厂方法(gof)、服务定位器模式(j2ee核心模式)已经被广泛使用,近来由于测试驱动方法的深入人心,有洁癖的程序员们又重新理解了ioc(Inversion of Control),并把它们变成实现,代表性的实现有PicoContainer,Spring,而Martin Fowler也趁机总结出了一个新的模式:Dependency In...

weixin_42509868的博客 303

从零搭建一个AF架构项目:基于TIA Portal V19和S7-PLCSIM的仿真调试全流程

本文详细介绍了如何在TIA Portal V19环境中从零搭建西门子Automation Framework(AF架构)项目,包括环境准备、硬件组态、核心组件创建、项目架构分层实现以及仿真调试全流程。通过模块化编程和标准化接口设计,AF架构显著提升工业自动化项目的开发效率和维护便利性,特别适合S7-1500系列PLC的应用开发。

weixin_29313547的博客 672

YOLOv11 模型改进全流程:从代码修改到性能跃升,让你打造专属检测利器

无论是科研中需要发表创新点满满的论文,还是企业里要解决特定场景的检测难题,这套方法都能让你在YOLOv11的基础上打造出“量身定制”的检测模型。别再让通用模型的“平庸性能”限制你的项目上限——现在就动手修改代码,让你的YOLOv11模型在精度、速度或小样本适应能力上实现跨越式提升,用技术突破证明你的AI研发实力!本文将带你从代码层面入手,完成从骨干网络到损失函数的全维度改进,真正掌握让YOLOv11“为你所用”的技术实力。该改进对小样本类别(如数据集中仅占5%的“稀有缺陷”)的识别精度提升显著。

m0_71589036的博客 402

picoContainer的字段注入

为什么80%的码农都做不了架构师?>>> ...

weixin_33912445的博客 191

AI Agent开发第84课-paddleocr-vl全网唯一最全本地化布署教程

本文详解 PaddleOCR-VL 本地化布署全过程,指出为何在真实生产环境中 PaddleOCR-VL 更稳定、更易部署、更贴近工程落地。同时还会详细比较与 DeepSeek-OCR 的核心差异,为全网独家介绍paddleocr-vl的本地部署实战指南。

打造全国最全的AI Agent开发知识领域的博客 5966

已解决java.util.concurrent.CompletionException: org.picocontainer.PicoRegistrationException报错问题

昨天学弟遇到了如标题所示的Idea报错问题,如果操作不当,可能导致Idea报错无法运行,针对这个问题,作此篇文章记录一下。

小威的博客 3348

华为面试手撕真题【最长不重复子串】

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。

MISAYAONE的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

cucumber java_如何在Cucumber Java中的步骤之间传递变量值?

在Cucumber forJava(cucumber-jvm)中,在步骤之间共享数据的预期方式是使用依赖性集成(DI)容器 – 其中一些已与Cucumber集成.使用DI的方法在容器之间略有不同,但这是使用PicoContainer的示例:// MySharedData.javapublic class MySharedData {public String stringData;}// Some...

weixin_29496633的博客 915

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java.util.concurrent.CompletionException: org.picocontainer.PicoRegistration idea启动报错,无法打开软件

java.util.concurrent.CompletionException: org.picocontainer.PicoRegistration idea启动报错,无法打开软件

weixin_64854388的博客 1797

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java cucumber,如何在Cucumber Java中的步骤之间传递变量值?

I have a variable and I want to pass this variable across all the steps.Anyone can suggest with an code snippet example please on how to pass a variable value between the steps please.Any help will be...

weixin_33640562的博客 642

PicoContainer-One minute description

转自:http://www.picocontainer.org/One+minute+descriptionOne minute description 一分钟描述 Authors: Paul Hammant, Aslak Hellesoy, Jon TirsenWhat is PicoContainer?什么是微容器?PicoContainer is a lightweight containe

1109

java之道_Java的简单之道

Java应该变得更简单——或者说,更易用。目标是没有争议的,但达到目标的途径却颇可商榷。在持久层和业务层,EJB向人们证明:在J2EE领域,Sun没有能力像微软之于.NET那样提出一揽子完整的解决方案;力图一次性解决所有问题的EJB到最后只能是一种可供参考的选择——如果不是更糟的话。Java的简单之道不在这个方向上。充分利用Java语言本身的简单性,充分发挥OOD的威力,充分借助Open Sour...

weixin_39721953的博客 135

Java中常见的IOC 控制反转(Inversion of Control)解决方案及示例

Java中常见的IOC 控制反转(Inversion of Control)解决方案及示例

爱的叹息的专栏 536

Martin Fowler的Inversion of Control Containers and the Dependency Injection pattern(中英文对照版)

Home Blog Articles Books About Me Contact Me ThoughtWorks

程序人生 5740

介绍 IoC

介绍 IOC 作者:冰云 icecloud(AT)sina.comBLOG: http://icecloud.51.net时间:2004.02.15 版权声明:本文由冰云完成,首发于优快云,作者保留中文版权。未经许可,不得使用于任何商业用途。欢迎转载,但请保持文章及版权声明完整。如需联络请发邮件:icecloud(AT)sina.com一、

冰云BLOG 5095

高级java每日一道面试题-2024年8月22日-框架篇-IOC容器的一些具体的实现有哪些?

在Java中,控制反转(Inversion of Control, IoC)是一种设计原则,用于减少代码间的耦合。IoC容器是实现IoC原则的一种工具,它负责管理对象之间的依赖关系,而不是由代码直接控制。在Java生态中,IoC容器主要通过依赖注入(Dependency Injection, DI)的方式来实现。

qq_43071699的博客 1171
上一篇: Java_PicoContainer
下一篇: WebSever_Apache http server[TODO]
fenterpriser
博客等级 码龄21年 3粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值