小编The*_*tor的帖子

是否有可能构建一个"持久"架构?

假设我有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,这似乎不太好.

有什么建议?

haskell persistent

10
推荐指数
0
解决办法
177
查看次数

JavaMail - 如何设置与 DATA 中的“To:”标头不匹配的 SMTP“RCPT TO:”

在我的小项目中,我想设置“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”值?

java email spring jakarta-mail

2
推荐指数
2
解决办法
2780
查看次数

scala中的"内置依赖注入"

嗨,以下帖子说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 injectionscala

java dependency-injection scala

1
推荐指数
1
解决办法
397
查看次数