假设我有4个模块:Common,A,B和Main,我想要以下模式:
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Common
commonField Int
A
commonId CommonId
aField Int
B
commonId CommonId
bField Int
|]
Run Code Online (Sandbox Code Playgroud)
但是我希望将它分割为Common,A和B模块.然后,我希望Main依赖于所有这些并包含数据库逻辑.
我尝试了以下(忽略B)
-- module Common
share [mkPersist sqlSettings, mkMigrate "migrateCommon"] [persistLowerCase|
Common
commonField Int
|]
-- module A
share [mkPersist sqlSettings, mkMigrate "migrateA"] [persistLowerCase|
A
commonId CommonId
aField Int
|]
Run Code Online (Sandbox Code Playgroud)
但是由此产生的迁移将外部约束从A移除到Common.
我persistLowerCase在调用share之前尝试存储和连接quasiquoter 的结果,但这导致了一个关于CommonId不在范围内的类型错误.
我能想到的唯一其他解决方案是存储字符串,连接它们,并在其上调用quasiquoter,这似乎不太好.
有什么建议?
在我的小项目中,我想设置“RCPT TO”和“To”,如下所示:
RCPT TO: <user-signup-123123123@bounces.example.com>
DATA
354 Go ahead vw9sm7458976pbc.68 - gsmtp
Date: Thu, 02 Mar 2012 14:06:02 +0200 (ICT)
To: +10xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("HOST");
mailSender.setPort("PORT");
mailSender.setUsername("USERNAME");
mailSender.setPassword("PASSWORD");
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
mimeMessage.setRecipient(MimeMessage.RecipientType.TO,
new InternetAddress("user-signup-123123123@bounces.example.com"));
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setTo("+10xxxxxxxxxx");
} catch(Exception e) {
System.out.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
还有我得到的日志
MAIL FROM:<abc@xxxxx.com>
250 2.1.0 OK x5sm16625925pbw.26 - gsmtp
RCPT TO:<user-signup-123123123@bounces.example.com>
250 2.1.5 OK x5sm16625925pbw.26 - gsmtp
RCPT TO:<+10xxxxxxxxxx>
Run Code Online (Sandbox Code Playgroud)
如您所见,程序创建了一个新的“RCPT TO”值,其中包含“+10xxxxxxxxxx”。
如何设置与 DATA 中的“To”标头不匹配的“RCPT TO”值?
嗨,以下帖子说scala中有"内置依赖注入"
"作为一名Scala和Java开发人员,我甚至没有想过将Scala替换为我的下一个Java 8项目的主要语言.如果我被迫编写Java,最好是Java 8,但如果我有选择,有很多事情(正如OP正确陈述的那样)使得Scala在Lambdas之外对我有吸引力,只是将这个功能添加到Java对我来说并不是什么意思.Ruby有Lambdas,Python和JavaScript,Dart和我相信任何其他现代语言.我喜欢Scala,因为除了lambda之外还有很多其他的东西,单一评论是不够的.
但仅举几例(其中一些被OP引用)
一切都是表达,对于理解(特别是多个未来,以美妙的语法恕我决定解决死亡的回调三角形),隐式转换,案例类,模式匹配,元组,事实上一切都已经正确实现了等式和哈希码(所以我可以把一个元组,甚至是一个数组作为地图中的键),字符串插值,多行字符串,默认参数,命名参数, 内置依赖注入,最复杂但最强大的类型系统,我所知道的任何语言,类型推理(不如Haskell好,但比Java中不存在更好).事实上,我总是从一系列"monadic"行动中获得正确的类型,这要归功于像CanBuildFrom这样的臭名昭着的事物(纯粹的天才).让我们不要忘记通过名称参数和构建DSL的能力.提取器(通过模式匹配).还有很多.
我认为Scala是留下来的,至少对于Scala开发人员来说,我100%肯定你不会找到一个会说:"Java 8得到了lambda?很棒,再见scala永远!".我能想到的唯一原因是编译时和二进制兼容性.如果我们忽略这两个,我只能说这就证明了Scala是如何朝着正确的方向发展的(因为Java 8 lambdas和默认的接口方法和流程受到明显的影响)
但我确实希望Scala能够改进Java 8的互操作性,例如以相同的方式支持功能接口.并将新的隐式转换添加到Java 8集合中,并利用JVM中的改进.
一旦我找到一种能够让我了解Scala所做的并且做得更好的语言,我就会替换Scala.到目前为止,我没有找到这样的语言(检查过Haskell,Clojure,Go,Kotlin,Ceylon,Dart,TypeScript,Rust,Julia,D和Nimrod,Ruby Python,JavaScript和C#,其中一些非常有前途但是因为我需要一种JVM语言,最好是一种静态类型的语言,它可以很快缩小选择范围)
对不起,Java 8到目前为止还没有结束.很大的改进,我很高兴Java开发人员可以获得"许可"使用它(可能比企业中的Scala更容易采用),但这并不是Scala商店考虑转回Java的原因. [ 1 ]
什么是完全built in dependency injection的scala?