小编AHu*_*ist的帖子

问题使用Spring MVC中的JAXB注释对Jackson进行反序列化

我在调用服务时让杰克逊正确地将json反序列化为一个对象(特别是我们使用Jackson的能力来使用JAXB注释,因为我们也希望服务使用XML).我正在使用Spring MVC,我正在使用RestTemplate类来调用服务.

这是我为junit设置MappingJacksonHttpMessageConverter的地方:

ObjectMapper jsonMapper = new ObjectMapper();
AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
jsonMapper.getDeserializationConfig().setAnnotationIntrospector(introspector);
jsonMapper.getSerializationConfig().setAnnotationIntrospector(introspector);
jsonMapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
MappingJacksonHttpMessageConverter jacksonConverter = new MappingJacksonHttpMessageConverter();
jacksonConverter.setObjectMapper(jsonMapper);
List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>();
converters.add(jacksonConverter);
template.setMessageConverters(converters);
Run Code Online (Sandbox Code Playgroud)

我这样称呼服务:

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("Accept", "application/json");
HttpEntity<String> requestEntity = new HttpEntity<String>(requestHeaders);
ResponseEntity<NamedSystem> responseEntity = template.exchange(baseURL + "/{NamedSystemId}", 
        HttpMethod.GET, requestEntity, NamedSystem.class, orgId1);
Run Code Online (Sandbox Code Playgroud)

我的NamedSystem课程设置如下:

@XmlRootElement(name = "NamedSystem", namespace = "http://schemas.abc.workplace.com/NamedSystem")
public class NamedSystem {
    private String id;
    private String name;
    private String description;
    private Set<NamedSystemAlias> aliases;
    private String href; …
Run Code Online (Sandbox Code Playgroud)

java serialization spring-mvc jaxb jackson

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

如何使用Spring @Configuration覆盖导入的资源?

是否可以使用Spring注释配置覆盖导入的资源?

配置类:

@Configuration
@ImportResource({"classpath:applicationContext.xml"})
public class CoreConfiguration {

    @Resource(name = "classA")
    private ClassA classA;

    @Bean(name = "nameIWantToOverride")
    private ClassB classB() {
       return new ClassB("different setting");
    }

}
Run Code Online (Sandbox Code Playgroud)

applicationContext.xml包括:

<bean name="classA" class="a.b.c.ClassA">
     <property name="nameIWantToOverride" ref="classB" />
</bean>
Run Code Online (Sandbox Code Playgroud)

如果classA有一个classB字段,但我希望它使用我在配置类中定义的ClassB,那可能吗?我试过切换订单,但没有帮助.似乎XML优先,因为当我运行实例化配置的简单测试时,它永远不会到达classB方法.如果我更改名称使其与xml文件中的bean不匹配,那么它确实到达了classB方法.

我已经看到了它可以以另一种方式工作的地方:Spring框架可以覆盖基于XML的配置的基于注释的配置吗?但是这个方向怎么样?由于这是更新的做事方式,我认为你能做到这一点.

我该怎么做才能解决这个问题?

编辑:使用XML更新.假设classA有多个字段,但我只想替换它.

java configuration spring dependency-injection

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

Javascript库动态创建图形?

这是我的要求:

我需要创建一个人的不同表示之间的链接的可视化.我认为下面的图像表明相当清楚.

在此输入图像描述

此外,这些矩形还包含一些关于人的表示的数据(例如人口统计和地点).我还需要能够在单击框或它们之间的链接时处理事件,作为一种管理工具(例如,双击链接以删除它,或沿着这些行的某些东西).同样重要的是,由于人数和链接的数量会有所不同,我需要通过像图像显示的大致等距的方式将人们隔开来显示它.

什么是javascript库可以实现这一目标?我做了一些研究,但还没有发现可以干净利落的事情,但我不是这些图书馆的专家.

以下是我看过的内容:

Arbor js:可以动态创建图形的间距和链接,但我负责渲染所有的视觉效果,并且没有像单击链接那样的钩子.

jsPlumb:轻松地在元素之间创建连接并很好地绘制它们,但似乎没有解决任何布局问题.因为我不知道屏幕上会有多少人,所以我必须能够将它们等距离分开,这似乎不是jsPlumb的关注点.

D3.js:这创建了一个很好的可视化,我需要的间距,但我不知道如何在每个节点内显示数据或在链接或框上执行类似鼠标事件的操作.

我感觉有点失落,所以我希望有人可以指点一些可以帮助我的东西,或者让我看一下这些图书馆中的一个例子,告诉我我想要的东西是可能的.

javascript graph d3.js arbor.js jsplumb

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

如何从阴影Maven jar中排除测试依赖项?

我正在使用maven-shade-plugin,不仅要排除测试代码,还要排除阴影罐子中的测试依赖项。我意识到我可以专门排除某些工件(例如junit),但这是一项很大的工作,并且很可能会出现一些错误。

我设置minimizeJar为true,但仍然看到我的Junit和Mockito依赖项。是否没有办法通过配置排除所有测试范围的依赖关系?

java jar maven-3 maven maven-shade-plugin

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

primefaces selectOneMenu未排序

我的页面中有一个selectonemenu,我从我的支持bean获取其内容.但是selectonemenu的内容没有排序.这是代码......

    <p:selectOneMenu id="Department" value="#{search.selectedDepartment}">  
            <f:selectItem itemLabel="Select Department" itemValue="" />  
            <f:selectItems value="#{search.departments}" />  

        </p:selectOneMenu> 
Run Code Online (Sandbox Code Playgroud)

和我的豆...

public class SearchBean implements Serializable {

private Map<String, Map<String, String>> courseData = new HashMap<String, Map<String, String>>();

private Map<String, String> departments = new HashMap<String, String>();
private String selectedDepartment;


    departments.put("department1",
            "department1");
    departments.put("department2",
            "department2");
    departments.put("department3", "department3");
departments.put("department4", "department4");
departments.put("department5", "department5");





//getters setters...


}
Run Code Online (Sandbox Code Playgroud)

selectonemenu的内容分别不是department1,department2,department3,department4,department5.它没有排序.

java

5
推荐指数
2
解决办法
8026
查看次数

词基/词典

看来我的Google-fu让我失望了.

有没有人知道一个免费提供的单词基础字典只包含单词的基础?所以,对于像草莓这样的东西,它会有草莓.但是不包含缩写或拼写错误或替代拼写(如英国与美国)?任何可以在Java中快速使用的东西都会很好,但只是一个映射的文本文件或任何可以读入的内容都会有所帮助.

java dictionary nlp stemming

3
推荐指数
1
解决办法
2918
查看次数

Spring Boot Hibernate 未获取 use-new-id-generator-mappings 属性

我正在将我的项目升级到使用 Hibernate 5.3.18 的 Spring Boot 2.1.18。

以前,我的实体看起来像这样,并且会使用 SequenceHiLoGenerator:

@Entity
@Table(name = "group_link")
@SequenceGenerator(name = "group_link_seq", sequenceName = "group_link_seq")
public class GroupLinkEntity extends BaseObject {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "group_link_seq")
    @Column(name = "group_link_id", unique = true, nullable = false)
    private Long id 
}
Run Code Online (Sandbox Code Playgroud)

现在,默认情况下,在 Hibernate 5 中,它使用 SequenceStyleGenerator,这会导致约束冲突,因为我的增量大小为 1,默认的 allocateSize 为 50。

为了保持兼容性,建议设置此属性:

spring.jpa.properties.hibernate.use-new-id-generator-mappings: false
Run Code Online (Sandbox Code Playgroud)

我这样做了,但似乎不需要,因为仍然使用 SequenceStyleGenerator。根据我的理解,这应该会导致它使用 SequenceHiLoGenerator。这是不正确的吗?

但是,如果我将实体修改为如下所示,它将按预期工作,复制我之前拥有的功能。

@Entity
@Table(name = "group_link")
@GenericGenerator(
        name = "group_link_seq",
        strategy = "org.hibernate.id.SequenceHiLoGenerator",
                parameters = {
                           @Parameter(name = "sequence_name", value = …
Run Code Online (Sandbox Code Playgroud)

hibernate hilo sequence-generators spring-boot hibernate-5.x

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

可以在Oracle中禁用SQL执行计划吗?

我遇到一种情况,即Oracle为给定查询创建多个执行计划。大多数情况下,它会选择性能良好的特定产品。但是,有时它选择一个包含笛卡尔连接的连接,这是非常错误的。如果我们删除笛卡尔联接计划并使用其他计划之一运行查询,则该查询执行良好,这向我暗示了基础数据确实不需要笛卡尔。

我们曾尝试收集统计数据并摆正直方图,但最终,笛卡尔联接执行计划似乎又回来了,并被间歇性地使用(有时需要数周或数月)。

在Oracle中是否可以禁用特定的执行计划?我们不能只是删除它,因为它似乎又回来了,但是将其保留并禁用它应该可以解决,但是我真的不知道该怎么做或是否有可能。

sql database oracle database-performance sql-execution-plan

2
推荐指数
1
解决办法
5650
查看次数

无法以Oracle 11g中的新创建用户身份登录

我最近创建了一个新的表空间并将用户与它相关联(声纳).

目前,用户配置文件的复制和粘贴如下所示:

Name    SONAR
Profile DEFAULT
Authentication  Password
Default Tablespace  SONAR
Temporary Tablespace    TEMP
Status  UNLOCK
Default Consumer Group  None


Role    Admin Option    Default
CONNECT N   Y
DBA N   Y
RESOURCE    N   Y


System Privilege    Admin Option
CREATE SESSION  N
UNLIMITED TABLESPACE    N
Run Code Online (Sandbox Code Playgroud)

我可以使用此新用户登录到OEM控制台,但无法使用该用户连接到声纳表空间.我知道我正在使用的连接属性是有效的,因为我可以与其他用户连接并查看其表空间.

那么,有没有人知道我可能缺少什么阻止我与这个用户连接并使用他们的默认表空间?如果我需要提供更多信息,请告诉我.我对DBA的东西不太熟悉.

谢谢.

database oracle oracle11g

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

使用Prepared Statement设置LONG数据类型

我的情况是我需要在特定时间动态创建数据库分区.我使用Statement的如下:

alter table table_name split partition default_partition values (' +
id + ') into (  partition " + partitionName + ", partition
default_partition) update indexes
Run Code Online (Sandbox Code Playgroud)

这很好,完全符合我的预期.但是,价值id来自未经授权的人可能访问的输入.因此,上述语句容易受到SQL注入攻击.我想用一个PreparedStatement,但我无法弄清楚如何.

问题是oracle中的分区表将" id"值放入HIGH_VALUE列中,该列为LONG.我认为没有合适的setter来执行此操作(因为String无法工作).我已经尝试过使用各种流消息,a StringReader和ByteArrayInputStream值都没有用.我知道LONGs不应再被使用了,但这就是Oracle拥有它的方式所以我无法真正解决它.

当我尝试任何一种方式时,这就是我得到的:

ORA-14308: partition bound element must be one of: string, datetime or interval literal, number, or NULL
Run Code Online (Sandbox Code Playgroud)

Oracle doc有关于如何获取LONG(oracle数据类型,类似于LOB)但不知道如何设置它的良好信息.任何人都可以帮我这个吗?我也研究了JDBC驱动程序的Oracle实现,但它似乎也没有setLONG类型方法.有没有办法可以做到这一点?

java oracle jdbc prepared-statement database-partitioning

1
推荐指数
1
解决办法
3404
查看次数

达到大小时,Java Collections会自动重新分配

我不确定我是否使用了正确的术语,但我很好奇它是如何确定在Java充满时增加Java的大小的多少?我尝试过搜索,但我并没有真正想出任何有用的东西.

所以,如果我有类似的东西


List l = new ArrayList(1);
l.add("1");
l.add("2");
它如何确定增加列表大小的程度?它总是一个设定值,如果是这样,那个值是多少?如果它不同,我也会对BitSet的这些信息感兴趣.

谢谢,让我知道我是否应该澄清任何问题.

java collections list bitset dynamic-allocation

0
推荐指数
1
解决办法
1651
查看次数

我可以在偏好中制作铃声吗?

如何制作铃声活动(总是出现在设置中),以便用户可以从系统铃声中选择她的铃声我用Google搜索但我没有找到完整的教程,我真的很困惑,请给我教程或一些代码.

此外,如果我希望用户在我的应用程序中选择通知的特殊铃声,我应该使用共享偏好还是首选项?

我已经做了菜单:

      // Menu Code Part#2
    public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.about:
  startActivity(new Intent(this, About.class));
    return true;
    case R.id.help:
  startActivity(new Intent(this, Help.class));
    return true;
    case R.id.setting:
   startActivity(new Intent(this, Setting.class));
        return true;
    default:
    return super.onOptionsItemSelected(item);
   }
Run Code Online (Sandbox Code Playgroud)

java android preference ringtone

0
推荐指数
1
解决办法
1804
查看次数