我正在尝试从字符串中读取一些BigDecimal值.假设我有这个字符串:"1,000,000,000.999999999999999",我希望得到一个BigDecimal.这样做的方法是什么?
首先,我不喜欢使用字符串替换的解决方案(替换逗号等).我认为应该有一些整洁的格式化程序来为我做这项工作.
我找到了一个DecimalFormatter类,但是因为它运行的时间很长 - 大量的精度都会丢失.
那么,我该怎么做呢?
我的任务是 - 通过给定的请求参数创建模型属性,以验证它(以相同的方法)并将其整体提供给View.
我得到了这个示例代码:
@Controller
class PromotionController {
@RequestMapping("promo")
public String showPromotion(@RequestParam String someRequestParam, Model model) {
//Create the model attribute by request parameters
Promotion promotion = Promotions.get(someRequestParam);
//Add the attribute to the model
model.addAttribute("promotion", promotion);
if (!promotion.validate()) {
BindingResult errors = new BeanPropertyBindingResult(promotion, "promotion");
errors.reject("promotion.invalid");
//TODO: This is the part I don't like
model.put(BindingResult.MODEL_KEY_PREFIX + "promotion", errors);
}
return
}
}
Run Code Online (Sandbox Code Playgroud)
这件事确实有效,但是使用MODEL_KEY_PREFIX和属性名称创建键的那部分看起来非常hackish而不是Spring风格.有没有办法让同样的东西漂亮?
我在Java身份验证框架和身份验证工作流程方面没有太多经验(只有一些理论知识),所以出于教育目的,我正在尝试为我的HTTP应用程序创建这种类型的身份验证:
/login.sessionId./myresource?sessionId=1234567.sessionId.然后服务器执行获取的常规工作流程/myresource(使用Shiro管理方法级访问权限).基本上我有这些问题:
提前致谢.
我正在尝试使用DDD + CQRS,我无法理解如何处理这个域逻辑重复问题:
首先,关于跨域的重复:
场景1: 假设我有一些处理办公室员工的应用程序.我有三个有限的背景:程序员部门,QA部门和审计部门.每个BC都有自己的AR:"程序员","测试者","工人".它们有99%的不同,每个都有不同的逻辑,但是,每个都有"Name","Surname"和一个简单的方法"getFullName",它将这两个结合起来.
问题1:我如何(以及我应该如何)使每个AR中的常用方法不重复?
最简单的答案可能是制作一些共享的"人类"类,并使这3个AR派生自它,但这违背了DDD的想法,因为"QA部门"永远不需要"getFullName"方法但需要其他一些"共享" " 方法.因此,此解决方案将使用未使用的方法使域发送垃圾邮件.
现在关于CQRS代码重复:
场景2:数据库包含发票.每张发票都有"sum"和"tax"字段.在"显示发票"页面中,我需要显示含税的发票金额.因此,在我阅读的模型中,我需要做"total = sum + tax"来向最终用户展示它.但是,用户可以按"批准"按钮,这应该说,在一些其他数据库(会计或其他)中注册发票金额.所以,在我的写作模型中,我将再次需要做"总=总和+税".
问题2:我如何(我应该?)删除这种重复?
当然,这是一个简单的场景,但在分析了我的一些现实应用程序后,我发现使用CQRS需要在不同的地方进行大量重复,因为有很多地方可以根据存储在数据库中的数据计算最终结果,这是在查询和命令操作上完成的.
有任何想法吗?我错过了什么吗?
问候,
我似乎无法找到一种方法来创建一个函数请求与数组作为参数.例如,如何使用PHP SoapClient发出此类请求:
<GetResultList>
<GetResultListRequest>
<Filters>
<Filter>
<Name>string</Name>
<Value>string</Value>
</Filter>
<Filter>
<Name>string</Name>
<Value>string</Value>
</Filter>
</Filters>
</GetResultListRequest>
</GetResultList>
Run Code Online (Sandbox Code Playgroud)
这是否可以调用此函数而不创建任何额外的类(仅使用数组)?如果不是,最紧凑的方式是什么?
是否有一些很好的方法来检查某个特定用户(不是登录的用户)是否具有某些特定角色?
这是grails示例(对于普通Java通常是相同的但是语法):
def user = User.get(1) //Get user with id 1
if (ifAnyGranted(user,"ROLE_ADMIN")) { //This is the line I need to implement somehow
...
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
有没有理由使用Spring MVC(或其他类似的框架)作为GWT RPC的服务器?据我所知,Spring的99.9%功能将不会被使用.然而,很多人都在寻找将它们结合使用的最佳方法.
有人可以解释一下,当你在服务器端需要的只是业务逻辑时,在GWT上使用MVC框架(在服务器上)有什么好处?
我有一个数组对象:
[
{ id:1, name: 'Pedro'},
{ id:2, name: 'Miko'},
{ id:3, name: 'Bear'},
{ id:4, name: 'Teddy'},
{ id:5, name: 'Mouse'}
]
Run Code Online (Sandbox Code Playgroud)
并有ids数组[1,3,5]
如何过滤数组对象只留下来自第二个的id的记录?谢谢!
我有一个简单的控制台应用程序,在几个线程(其中10-20个)中运行计算.现在我正在尝试创建一个简单的GUI,允许我选择要处理的文件并打印来自所有线程的日志.
因此,我使用JTextArea为我的日志创建了一个swing GUI,并将信息记录到日志中:
public synchronized void log(String text) {
logArea.append(text);
logArea.append("\n");
if (logArea.getDocument().getLength() > 50000) {
try {
logArea.getDocument().remove(0,5000);
} catch (BadLocationException e) {
log.error("Can't clean log", e);
}
}
logArea.setCaretPosition(logArea.getDocument().getLength());
}
Run Code Online (Sandbox Code Playgroud)
但是,该setCaretPosition方法有时会在等待某些锁时死锁,append有时会抛出InterruptedException.
Exception in thread "Thread-401" java.lang.Error: Interrupted attempt to aquire write lock
at javax.swing.text.AbstractDocument.writeLock(AbstractDocument.java:1334)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:687)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114)
at javax.swing.JTextArea.append(JTextArea.java:470)
at lt.quarko.aquila.scripts.ui.ScriptSessionFrame.log(ScriptSessionFrame.java:215)
Run Code Online (Sandbox Code Playgroud)
我是Swing的新手,所以我无法理解我在这里做错了什么?
提前致谢.
是否有可能从存储库中删除不会从每个用户的本地存储库中删除的文件夹?
在我的例子中,有一个名为'config'的目录,旨在进行版本控制.现在我们决定从版本控制中删除该目录,但将其保留在每台人员计算机上(并将其添加到svn:依旧忽略).问题是,如果我用"svn delete"删除该目录 - 它将从每个人的计算机中删除,我不希望这样.