我养成了这样做的习惯,所以在我的单元测试中我可以检查添加到模型中的内容:
@RequestMapping(value = "/Foo", method = RequestMethod.GET)
public ModelAndView goHome()
{
ModelandView mav = new ModelAndView("foobar.jsp");
mav.addObject("bar", new Bar());
return mav;
}
Run Code Online (Sandbox Code Playgroud)
这是否更好:
@RequestMapping(value = "/Foo", method = RequestMethod.GET)
public String goHome(final Model model)
{
model.addAttribute("bar", new Bar());
return "foobar.jsp";
}
Run Code Online (Sandbox Code Playgroud) 为什么这不适用于java,但确实如此
Map<String, Map<String, Boolean>> myMap = new HashMap<String,Map<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud)
只是为了澄清下面对嵌套HashMap的更改显示了编译器错误,而上面并没有; 用地图(不是hashmap)
Map<String, Map<String, Boolean>> myMap = new HashMap<String,HashMap<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud) 我的控制器包含以下注释:
@Resource(name="userService")
private UserDetailsServiceImpl userService;
Run Code Online (Sandbox Code Playgroud)
并且服务本身具有以下内容:
@Service("userService")
@Transactional
public class UserDetailsServiceImpl implements UserDetailsService {
@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;
Run Code Online (Sandbox Code Playgroud)
但是我在启动时收到以下错误:
注入资源依赖性失败; 嵌套异常是org.springframework.beans.factory.BeanNotOfRequiredTypeException:名为'userDetailsServiceImpl'的bean必须是[myapp.service.UserDetailsServiceImpl]类型,但实际上是[$ Proxy19]类型
String myString = "this";
//string is immutable
myString.concat(" that");
//a new object is created but not assigned to anything
System.out.println(myString); //prints out "this"
Run Code Online (Sandbox Code Playgroud)
我更喜欢编译时错误 - 为什么不是这种情况?在没有提供返回类型的情况下调用它时,同样的问题可以应用于具有返回类型的任何方法.
public myObject doStuff(...whatever){
//define my method
return anObject;
}
Run Code Online (Sandbox Code Playgroud)
可以调用而不提供引用/变量来保存返回类型:
MyObject newObject = doStuff(); //works
doStuff(); //works too without assigning return object
Run Code Online (Sandbox Code Playgroud) 可爱的equals和hashcode,所有的理论都在这里,也在这里
我已经决定在我的许多休眠实体/域对象中使用 equals() 和 hashcode() 中自动生成的 id。
但是,许多网站表示您永远不应该这样做,因为在比较或使用哈希码的过程中第一次将对象持久保存到数据库中的风险。
我的观点是,在大多数用例中,这比更改任何其他字段的可能性要小得多。
单个域对象在首次创建时会生成一次 id,而几乎所有其他字段在正常业务流程中都有机会被更改(甚至可以更改唯一的用户名……)。
在我的许多域对象中,唯一 id 几乎是唯一需要考虑的合适字段(人、地址、宠物、...客户等?组合字段是一个好主意,但从不使用自动生成的 id,我认为,不是很好的建议。
我还缺少其他东西吗?
目前,默认我认为,它复制到
target/myproject/WEB-INF/classes
Run Code Online (Sandbox Code Playgroud)
因此在部署时不会获取上下文.
另外,我想引用服务器特定的配置文件database.properties,我想把它放在tomcat/conf中,然后在applicationContext.xml中引用它,我该怎么做?
另外(2),我的印象是这是一个相当标准和体面的方式来设置 - 如果我错了,请纠正我.
编辑 服务器特定的配置文件我用户这个
<context:property-placeholder
location="file:${catalina.home}/conf/database.properties"
ignore-unresolvable="true"
/>
Run Code Online (Sandbox Code Playgroud) 这很好用:
<#list myObjects as myObject>
<tr>
<td>${myObject.person.surname}</td>
<td>${myObject.myListOfCountries[0].city.name}</td>
</tr>
</#list>
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试创建一个这样的嵌套列表,这不起作用:
<#list myObjects as myObject>
<tr>
<td>${myObject.person.surname}</td>
<#list myObject.myListOfCountries as item>
<td>${item.city.name</td>
</#list>
</tr>
</#list>
Run Code Online (Sandbox Code Playgroud)
我收到的错误如下所示:
freemarker.core.ParseException: Encountered "/"
Run Code Online (Sandbox Code Playgroud)
任何导致错误的想法 - 是freemarker中允许的嵌套列表吗?
测试一个spring文件上传表单,controlelr签名看起来像这样
@RequestMapping(value = "upload", method = RequestMethod.POST)
@ResponseBody
public void upload(@RequestParam("file") MultipartFile multipartFile) {}
Run Code Online (Sandbox Code Playgroud)
并测试这个
final MockMultipartFile file
= new MockMultipartFile("content", "myFile.txt", "text/plain", "hello".getBytes());
MockHttpServletRequestBuilder mockHttpServletRequestBuilder =
.fileUpload("/upload/")
.file(file)
.accept(MediaType.APPLICATION_JSON);
Run Code Online (Sandbox Code Playgroud)
但我得到上述内容:错误消息=必需的MultipartFile参数'file'不存在
出于企业原因,我无法覆盖hashCode,我必须使用Java 6(但我可以使用番石榴)
什么是最佳/最简单/最快/最有效/ [插入相当于最佳的不确定形容词]机制从Java集合中删除重复的bean?
副本由返回相同值的getter子集定义,例如
pojoA.getVal() == pojoB.getVal() && pojoA.getOtherVal() == pojoB.getOtherVal()
Run Code Online (Sandbox Code Playgroud) java ×10
spring ×5
maven ×2
collections ×1
email ×1
equals ×1
freemarker ×1
guava ×1
hashcode ×1
hashmap ×1
hibernate ×1
map ×1
nested ×1
reference ×1
spring-mvc ×1
string ×1
unit-testing ×1