我想创建一个多模块(maven)spring MVC应用程序,其模块如下:
web
persistance (hibernate)
core (general libs)
models
job-server (queue based jobs)
services (business logic)
Run Code Online (Sandbox Code Playgroud)
现在在这个项目中使用Scala,我可以在任何地方写scala吗?或者我应该使用scala作为我的服务模块,使用java作为Web模块?
我知道hibernate必须在java中.
思考?建议吗?
有什么问题需要注意吗?这是一个好主意吗?我是否需要破解某些部件才能将它们粘合在一起?
使用JdbcTemplate时,是否需要显式配置事务?
我的代码布局如下所示:
我将有一个UserDao将被注入我的UserService,然后我的控制器将调用我的UserService中的方法.
我希望尽可能简化事务,并且我不需要多个数据库调用来跨越事务.
默认情况下,我是否必须在配置文件中执行任何操作或在@Transaction任何位置使用注释?
现在说在我的控制器中我需要在我的userService和accountService上进行2次调用,我能否以某种方式明确地将其包装在事务中?
userService.updateUser(user);
accountService.updateXXX(...);
Run Code Online (Sandbox Code Playgroud) 我目前正在这样做,但如果找不到密钥则抛出异常.
此代码段位于ActionFilterAttribute覆盖方法中继承的Web api过滤器内部OnActionExecuting.
if (actionContext.Request.Headers.GetValues("some_key") != null
&& actionContext.Request.Headers.GetValues("some_key").First() == "hello")
{
}
Run Code Online (Sandbox Code Playgroud)
我是否被迫将其包裹在try/catch中?
我有一个简单的jane servlets Web应用程序,我的一些类有以下注释:
@Controller
@RequestMapping(name = "/blog/")
public class TestController {
..
}
Run Code Online (Sandbox Code Playgroud)
现在,当我的servlet应用程序启动时,我想获得所有具有@Controller注释的类的列表,然后获取@RequestMapping注释的值并将其插入字典中.
我怎样才能做到这一点?
我也使用Guice和Guava,但不确定是否有任何与注释相关的助手.
我试图使用Razor模板来做到这一点:
@if(isNew)
{
<div class="new">
}
...
@if(isNew)
{
</div>
}
Run Code Online (Sandbox Code Playgroud)
错误是:
cannot resolve the symbol 'div'
Run Code Online (Sandbox Code Playgroud)
Razor不喜欢IF子句中的结束div标签,我怎么能让它工作?我必须使用逃脱吗?
使用Spring MVC,我知道如何设置RequestMapping每个控制器和方法/操作.
但是,如果我希望这是可配置的,那么例如我以下控制器:
BlogController
- with methods for listing blogs entries, single entry, new, update, etc.
ArticleController
- with methods for listing articles entries, single entry, new, update, etc.
Run Code Online (Sandbox Code Playgroud)
现在,在我的应用程序中,管理员可以为网站设置2个博客,以及1个文章部分,以便网址如下:
www.example.com/article_section1/ - uses ArticleController
www.example.com/blog1/ - uses BlogController
www.example.com/blog2/ - uses BlogController
Run Code Online (Sandbox Code Playgroud)
也许一段时间后,管理员想要另一篇文章部分,所以他们只需要配置一个新的部分,如:
www.example.com/article_section2/
Run Code Online (Sandbox Code Playgroud)
这必须动态/即时工作,而不必重新启动应用程序.
我的问题只关心我将如何处理控制器的url映射.
如何使用Spring MVC实现这一目标?
我只知道如何使用@RequestMapping("/helloWorld")控制器或方法级别将URL映射到控制器,但这会使url映射固定,而不是像我想要的那样可配置.
更新:
我将存储数据库中的路径,并将映射到控制器类型,如下所示:
path controller
/article_section1/ article
/blog1/ blog
/blog2/ blog
..
Run Code Online (Sandbox Code Playgroud)
有了上述信息,我怎样才能将请求发送到正确的控制器?
再次,不想重新加载/重新部署,我意识到这将需要更多的工作,但它在规范:)
我有以下表格:
Users
Banned
SELECT u.*
FROM Users
WHERE u.isActive = 1
AND
u.status <> 'disabled'
Run Code Online (Sandbox Code Playgroud)
我不想包含用户也可能在禁止表中的任何行.
最好的方法是什么?
我可以这样做在子句中放置一个子查询,所以它做了类似的事情:
u.status <> 'disabled' and not exist (SELECT 1 FORM Banned where userId = @userId)
Run Code Online (Sandbox Code Playgroud)
我认为最好的方法是做LEFT JOIN,我怎么能这样做?
我的api客户端代码在查询字符串中发送身份验证令牌,如:
www.example.com/api/user/get/123?auth_token=ABC123
Run Code Online (Sandbox Code Playgroud)
我正在使用Mvc Web api控制器,我有一个过滤器来检查auth_token是否有效,但我不知道如何访问请求查询字符串值.
这就是我现在正在做的事情,但显然是错误的:
以下代码段位于我的过滤器内部,该过滤器继承自:
ActionFilterAttribute
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);
if (actionContext.Request.Properties.ContainsKey("auth_token") &&
actionContext.Request.Properties["auth_token"].ToString() == "ABC123")
{
...
}
}
Run Code Online (Sandbox Code Playgroud) 我怎样才能读取用户设置的环境变量?
我是Mac(可可)桌面开发的新手,我正在构建一个可用于访问亚马逊s3服务的小工具.
我在.bash_profile中设置了我的环境变量,但无论用户输入的位置如何(.bashrc,.bash_profile或.profile等),我希望它能够正常工作.
java ×4
asp.net-mvc ×3
c# ×3
spring ×3
spring-mvc ×2
branch ×1
cocoa ×1
guava ×1
guice ×1
jdbctemplate ×1
maven ×1
objective-c ×1
razor ×1
scala ×1
servlets ×1
sql ×1
sql-server ×1
tfs ×1