小编Sea*_*oyd的帖子

在Spring MVC中,如何在使用@ResponseBody时设置mime类型头

我有一个Spring MVC Controller,它返回一个JSON String,我想将mimetype设置为application/json.我怎样才能做到这一点?

@RequestMapping(method=RequestMethod.GET, value="foo/bar")
@ResponseBody
public String fooBar(){
    return myService.getJson();
}
Run Code Online (Sandbox Code Playgroud)

业务对象已经可以作为JSON字符串使用,因此使用MappingJacksonJsonView对我来说不是解决方案.@ResponseBody是完美的,但我怎样才能设置mimetype?

java spring json controller spring-mvc

75
推荐指数
3
解决办法
10万
查看次数

JPA vs Spring JdbcTemplate

对于一个新项目,JPA始终是处理关系数据的推荐工具,还是有些情况下Spring JdbcTemplate是更好的选择?您的回复中需要考虑的一些因素:

  • 新数据库模式与预先存在的模式和表
  • 开发人员专业水平
  • 易于与数据缓存层集成
  • 性能
  • 还需要考虑其他相关因素吗?

java spring jpa spring-jdbc jdbctemplate

72
推荐指数
5
解决办法
6万
查看次数

检查类是否为java.lang.Enum

我想知道一个班级是否是一个Enum,但我想我错过了一些东西:

if (test.MyEnum.class instanceof Enum<?>.class)
 obj = resultWrapper.getEnum(i, test.MyEnum.class);
else 
 obj = resultWrapper.getObject(i);
Run Code Online (Sandbox Code Playgroud)

它给我一个错误,说Enum.class无效.那我怎么能检查一个类是否是一个枚举?我很确定有可能确定,我只是无法得到它.

谢谢

java enums instanceof

63
推荐指数
2
解决办法
4万
查看次数

DAO和服务层(JPA/Hibernate + Spring)

我正在设计一个基于JPA/Hibernate,Spring和Wicket的新应用程序.DAO和服务层之间的区别对我来说并不清楚.根据维基百科,DAO是

一个对象,它为某种类型的数据库或持久性机制提供抽象接口,提供一些特定的操作而不暴露数据库的细节.

我想知道DAO是否可以包含对数据访问没有太多帮助的方法,但使用查询更容易执行?例如"获取在某些机场运营的所有航空公司的清单"?听起来我更多的是服务层方法,但我不确定在服务层中使用JPA EntityManager是否是良好实践的一个例子?

java architecture spring dao jpa

62
推荐指数
3
解决办法
4万
查看次数

访问地图中的最后一个条目

如何将特定的HashMap条目移动到Last位置?

例如,我有像这样的HashMap值:

HashMap<String,Integer> map = new HashMap<String,Integer>();

map= {Not-Specified 1, test 2, testtest 3};
Run Code Online (Sandbox Code Playgroud)

"未指定"可能处于任何位置.它可能首先出现在地图的中间.但我想把"未指定"移到最后一个位置.

我怎样才能做到这一点?提前致谢.

java maps hashmap

52
推荐指数
3
解决办法
9万
查看次数

Hibernate,List <String>

我似乎遇到了在Hibernate中映射List的问题.在我们的项目中有一类Card用含有类AnswerAnswer含有List<String>.

是否可以List<String>通过Hibernate使用注释进行映射?我的意思是,因为它没有@Entity注释?

问候

java string annotations hibernate list

50
推荐指数
1
解决办法
5万
查看次数

Spring REST多个@RequestBody参数可能吗?

我已经实现了Spring RESTful Web服务.使用Jackson JSON进行对象映射.我有一个接受两个参数的方法.

public Person createPerson(
    @RequestBody UserContext userContext,
    @RequestBody Person person)
Run Code Online (Sandbox Code Playgroud)

客户端如何构造一个请求,其中多个JSON对象将在正文中传递?

这可能吗?

- 斯里兰卡

java spring json spring-mvc jackson

49
推荐指数
1
解决办法
5万
查看次数

如何通过适当的文件而不是通过env变量或系统属性设置活动的spring 3.1环境配置文件

我们使用spring 3.1的新环境配置文件功能.我们当前通过在部署应用程序的服务器上设置环境变量spring.profiles.active = xxxxx来设置活动配置文件.

我们认为这是一个次优的解决方案,因为我们要部署的war文件应该只有一个额外的属性文件,该文件设置spring应用程序上下文应该加载的环境,因此部署不依赖于服务器上设置的某些env var.

我试图弄清楚如何做到这一点并发现:

ConfigurableEnvironment.setActiveProfiles()

我可以用来以编程方式设置配置文件,但后来我仍然不知道在何时何地执行此代码.弹簧环境加载的地方?我可以从属性文件加载我想传递给方法的参数吗?

更新:我刚刚在docs上找到了我可以实现设置活动配置文件的内容?

environment spring profiles

49
推荐指数
3
解决办法
7万
查看次数

反应堆根的Maven变量

在多模块maven项目中,是否有一个指向根项目文件夹的变量?

  • ${project.basedir} 指向当前项目的目录,
  • ${project.parent.basedir} 指向父项目的目录,

但是有一个变量总是指向根目录(执行maven命令的目录),无论反应堆内的哪个项目?


我意识到我想要解决的问题几乎无法解决.我想要一个指向project.basedir,project.parent.basedir,project.parent.parent.basedir等的变量,以较高者为准.但是由于项目的父pom不一定是文件系统中的父项,我的整个方法都无济于事.所以我接受Pascal的答案,因为它回答了我的问题(即使我的问题没有解决我的问题).

maven-2

47
推荐指数
6
解决办法
3万
查看次数

JPA2:不区分大小写,就像匹配任何地方一样

我一直在JPA 1.0(Hibernate驱动程序)中使用Hibernate Restrictions.定义了Restrictions.ilike("column","keyword", MatchMode.ANYWHERE)哪些测试关键字是否匹配列的任何位置,并且它不区分大小写.

现在,我使用JPA 2.0和EclipseLink作为驱动程序,因此我必须使用"Restrictions"内置JPA 2.0.我发现CriteriaBuilder和方法like,我也发现了如何使它匹配任何地方(尽管它是令人讨厌和手动),但我仍然没有想出如何做它不区分大小写.

我目前有一个很好的解决方案:

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<User> query = builder.createQuery(User.class);
EntityType<User> type = em.getMetamodel().entity(User.class);
Root<User> root = query.from(User.class);

// Where   
// important passage of code for question  
query.where(builder.or(builder.like(root.get(type.getDeclaredSingularAttribute("username", String.class)), "%" + keyword + "%"),
        builder.like(root.get(type.getDeclaredSingularAttribute("firstname", String.class)), "%" + keyword + "%"),
        builder.like(root.get(type.getDeclaredSingularAttribute("lastname", String.class)), "%" + keyword + "%")
        ));

// Order By
query.orderBy(builder.asc(root.get("lastname")),
            builder.asc(root.get("firstname")));

// Execute
return em.createQuery(query).
            setMaxResults(PAGE_SIZE + 1).
            setFirstResult((page - 1) * PAGE_SIZE).
            getResultList();
Run Code Online (Sandbox Code Playgroud)

问题: …

java criteria eclipselink hibernate-criteria jpa-2.0

47
推荐指数
4
解决办法
6万
查看次数