我对Spring 3 MVC有疑问 @Controllers.当请求进来时,容器是否为每个请求创建一个新的控制器实例(类似于Struts 2中的Action - ThreadLocal ActionContext)或单个实例响应所有请求?默认情况下,上下文中的控制器bean单例?
Spring 3 MVC应用程序的准则/最佳实践是什么?这些设置是否可配置?应该配置?如果我的环境是一个集群环境,它会有多大变化 - 我想它不应该因为jvm /容器会有所不同 - 但是一些权威的建议会受到欢迎.
我读过Spring文档,但可能我错过了它.任何'这就是我们如何实现'答案/指针/链接将是有用的谢谢.
有效的Java:第6项:消除过时的对象引用.
一般来说,每当一个类管理自己的内存时,程序员应该警惕内存泄漏.每当释放一个元素时,元素中包含的任何对象引用都应该被清除掉.
我不认为我完全理解这种描述.
管理自己内存的类的例子是什么 - 我可以想到数组,列表,也许是地图.
任何人都可以在书中更详细地解释这个项目吗?谢谢
在某些书籍中,其余的API通常会返回一个Response对象,该对象包装了一些表示有效负载,状态等的其他对象.
另一方面,我看到和编写的许多API都将POJO(或称之为DTO)作为JSON返回,这是客户端使用的.
这可能是基于意见的,但我想知道在高可伸缩性环境中使用哪个更好,其中一些请求导致成功而另一些请求失败/数据未返回.
我想知道是否有更好的做法.这将有助于我设计一些API并在我的团队面前展望.但是,如果"两个人中更好的"是基于意见的话,我可以将这个问题关闭.
谢谢.
更新:其余两个API将如下所示.避免像@ Path,@ Get,@ PathParam,@ Produces等代码
public Response myCustomerObject(int id){...}
Run Code Online (Sandbox Code Playgroud)
这将返回包含在Response对象内的Customer对象.响应也可能是错误的.
以下方法将直接返回Customer实体:
public Customer myCustomerObject(int id){...}
Run Code Online (Sandbox Code Playgroud) 在我正在处理的遗留代码库中,有大量的String文字.其中很多都是重复的.例如,字符串"userID"用于500个地方.可能有一千种这样的文字以重复的方式使用.IntelliJ Idea静态代码分析表明我将它们提取为常量.如果IDE为我自动重构,没有我键入一行代码,我应该去吗?
通常,将许多这样的重复字符串文字提取为常量是一个好主意吗?这显然可以避免重复,提供单点访问,声明等.
但是,这些文字中的一些在访问时会出现.如果我将所有文字声明为常量(静态最终),那么所有这些文字将被加载在一起.在这种情况下,将所有这些文字声明为常量是一个好主意吗?你能提供一些指向垃圾收集的指针,在这种情况下的内存空间预防措施吗?在这种情况下使用的最佳做法是什么?
一些注意事项:我知道字符串文字被实习.所以我不会在最坏的情况下保存任何内存.此外,似乎jdk 7将这些字符串放在堆而不是permgen.我看到了夫妻 的 问题,像我,但觉得这是不同的.所以在这里发布.
谢谢