Sat*_*hya 12 python java spring
我是Java框架的狂热粉丝(Rod Johnson).我正在学习Python,很高兴能找到关于Spring的Python.我有兴趣听听社区对这两种Spring的比较的看法.它与Python的范例等有什么关系?
Ant*_*sma 23
依赖注入框架在动态类型语言中几乎没有用处.例如,参见演示依赖注入:非常重要或完全不相关?在Java中,依赖注入框架提供的灵活性至关重要,而在Python中,它通常会导致不必要的复杂性.
这并不意味着原则是错误的.查看此示例如何使用简单的习惯用法实现类之间的松散耦合:
# A concrete class implementing the greeting provider interface
class EnglishGreetingProvider(object):
def get_greeting(self, who):
return "Hello %s!" % who
# A class that takes a greeting provider factory as a parameter
class ConsoleGreeter(object):
def __init__(self, who, provider=EnglishGreetingProvider):
self.who = who
self.provider = provider()
def greet(self):
print(self.provider.get_greeting(self.who))
# Default wiring
greeter = ConsoleGreeter(who="World")
greeter.greet()
# Alternative implementation
class FrenchGreetingProvider(object):
def get_greeting(self, who):
return "Bonjour %s!" % who
greeter = ConsoleGreeter(who="World", provider=FrenchGreetingProvider)
greeter.greet()
Run Code Online (Sandbox Code Playgroud)
gre*_*urn 15
披露:我是Spring Python的项目负责人,所以你可以认为我的观点有偏见.
我发现Spring Python提供的几个选项很有用,包括:面向方面编程,依赖注入,远程处理,安全性和简单的数据库访问.
正如他们所说,面向方面编程更容易使用python而不是java来实现.但是Spring Python可以很容易地添加到现有的python模块而无需编辑源代码.其他解决方案需要元编程或修改原始源代码.我已经有一个人访问我们的论坛,询问如何将一个拦截器添加到PyGame应用程序,所以他可以不引人注意地"点击"一些代码.
许多人很快就认为"依赖注入"或"IoC"立即意味着"XML配置文件".不是这样的.虽然我们支持XML配置,但直接跳到使用python装饰器.
我已经知道有一家公司使用Spring Python作为他们系统的关键部分.他们有兴趣进行改进,添加新功能,并且通常将其用作解决方案的一部分.他们还尝试在jython中运行它,以防引起你的兴趣.
在一天结束时,我的建议是检查所有功能,看看它们是否适合您的需求.这是否会增加不必要的复杂性或诅咒价值只能由您决定.你不必使用一切; 只有你需要的.为了获得有关可用内容的更多信息,我邀请您查看我在SpringOne Americas 2008大会上发布的Spring Python简介.
| 归档时间: |
|
| 查看次数: |
10577 次 |
| 最近记录: |