gRPC 基于 HTTP/2,它(假设)被浏览器广泛支持。因此,我觉得浏览器中的 gRPC 应该没有问题。
但是,很明显存在问题。协议grpc web是不同的,因为“由于浏览器限制”而存在。还有许多博客文章描述了部署复杂的技术堆栈以使 gRPC 从浏览器工作。
我错过了实际问题 - 为什么 gRPC 不能简单地在浏览器中工作?
我有一些使用属性的spring配置,如下所示:
<bean id="foo" class="...">
<constructor-arg value="${aProperty}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
显然,我知道可以通过拥有属性文件(例如example.properties)来解析此属性:
aProperty=value
Run Code Online (Sandbox Code Playgroud)
并在Spring配置中导入此文件:
<bean id="propertyConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>example.properties</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以直接在XML文件中设置此属性,而不必创建单独的属性文件?这样的事情将是理想的:
<set-property name="aProperty" value="value"/>
Run Code Online (Sandbox Code Playgroud)
Maven对于pom文件具有类似的功能:
<properties><aProperty>value</aProperty></properies>
Run Code Online (Sandbox Code Playgroud) 是否可以在继续使用同名其他字段/函数的生产版本的同时模拟 python 构造函数?例如,给定生产代码:
class MyClass:
class SubClass:
def __init__(self) -> None:
print("\nreal sub init called")
class SubSubClass:
def __init__(self) -> None:
print("\nreal sub sub init called")
Run Code Online (Sandbox Code Playgroud)
以及以下测试代码:
class FakeSubClass:
def __init__(self) -> None:
print("\nfake init called")
def test():
MyClass.SubClass()
MyClass.SubClass.SubSubClass()
MyClass.SubClass = Mock(side_effect=FakeSubClass)
MyClass.SubClass()
MyClass.SubClass.SubSubClass()
Run Code Online (Sandbox Code Playgroud)
我们得到以下输出:
real sub init called
real sub sub init called
fake init called
Run Code Online (Sandbox Code Playgroud)
请注意,最后一行MyClass.SubClass.SubSubClass()没有创建真正的 SubSubClass,因为此时它是 SubClass 模拟的自动创建的属性。
我想要的输出如下:
real sub init called
real sub sub init called
fake init called
real sub sub …Run Code Online (Sandbox Code Playgroud) 让我们想象一个典型的 Akka 应用程序,它具有一个树状 Actor 结构,即少量 (2-3) 数量的顶级 Actor,它们管理着层次结构底部的潜在数千个小型 Actor。似乎有两种方法可以实现持久化:
在这些方法之间进行选择时有哪些考虑因素?是否有任何典型的用例适合一个而不适合另一个?
这个问题应该是抽象的,但这里有一个例子。假设我们为应用程序的每个用户都有一个角色,并且这些角色共享同一个父角色。如果我们想保留每个用户的电子邮件地址及其任何更新,我们可以让每个用户角色持久化,或者我们可以让顶级角色持久化。
akka ×1
grpc ×1
grpc-web ×1
mocking ×1
python ×1
python-mock ×1
spring ×1
unit-testing ×1
xml ×1