小编The*_*ger的帖子

Spring MVC - 如何在Rest Controller中将简单的String作为JSON返回

我的问题基本上是对这个问题的后续行动.

@RestController
public class TestController
{
    @RequestMapping("/getString")
    public String getString()
    {
        return "Hello World";
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面,Spring会在响应体中添加"Hello World".如何将String作为JSON响应返回?我知道我可以添加引号,但这更像是一个黑客.

请提供任何示例来帮助解释这个概念.

注意:我不希望这直接写入HTTP响应体,我想以JSON格式返回String(我使用我的Controller与RestyGWT,它要求响应是有效的JSON格式).

java rest spring json spring-mvc

123
推荐指数
8
解决办法
31万
查看次数

如何升级Angular CLI项目?

我正在尝试将我的角度2项目从2.0.0升级到2.4.1.据我所知,自2.0.0版本开始采用语义版本控制,2.xx版本应该是替代版本.我的经验似乎表明不是这样.也许我只是不知道我在做什么,但我没有发现这是直截了当的......

尝试1 - 手动版本升级

我天真的第一种方法是手动更新我的@angular依赖项.您可以在下面引用我的package.json(更新1).我做了这些更改,然后做了一个2.0.0,我收到了几个警告,然后当我尝试做一个时出现以下错误2.4.1.

无法读取未定义的属性'AssetUrl'

我的警告......

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN @angular/core@2.4.1 requires a peer of rxjs@^5.0.1 but none was installed.
npm WARN @angular/core@2.4.1 requires a peer of zone.js@^0.7.2 but none was installed.
npm WARN @angular/http@2.4.1 requires a peer of rxjs@^5.0.1 but none was installed.
npm WARN @angular/compiler-cli@0.6.4 requires a peer of @angular/compiler@2.0.2 but none was …
Run Code Online (Sandbox Code Playgroud)

angular-cli angular

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

Maven - 抑制在Eclipse中覆盖托管版本警告

我正在使用spring-boot,并遇到类似于此处描述的错误.我在pom.xml中添加了以下内容.

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId><!--$NO-MVN-MAN-VER$-->
        <version>1.1.0.Final</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我通过Spring启动覆盖了我的父pom.xml中定义的validation-api 1.0.0依赖关系,这给出了令人讨厌的警告消息:

覆盖managed-api的托管版本1.0.0.GA

如何在Eclipse中永久禁止此警告消息?它显示在我的pom.xml和我的问题视图中.

eclipse m2eclipse maven spring-boot

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

Spring Boot - 如何指定备用启动类?(多个入口点)

我想为Spring-Boot应用程序添加一个备用入口点.我宁愿把它当成一个胖罐子.这可能吗?

根据他们的文档,该属性loader.main指定要启动的主类的名称.

我试过java -jar MyJar.jar --loader.main=com.mycompany.AlternateMain但是我的pom.xml中指定的start-class仍在运行(如果我从pom.xml中删除它,那么我在打包时出错).

或者,我试过,java -cp MyJar.jar com.mycompany.AlternateMain但我不知道将所有嵌套jar添加到类路径的好方法.

有什么建议?

编辑:这是我使用的解决方案

正如jst建议的那样,我改变了我的启动器以使用PropertiesLauncher.我通过修改spring-boot-maven-plugin的配置来做到这一点.

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <mainClass>${start-class}</mainClass>
    <layout>ZIP</layout>
    ...
Run Code Online (Sandbox Code Playgroud)

<layout>ZIP</layout> 触发器春季启动使用PropertiesLauncher.

我创建了我的胖罐(mvn包),然后像这样调用备用main:

java -jar -Dloader.main=com.mycompany.AlternateMain MyJar.jar
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

java spring jar spring-boot

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

Spring集成 - 入站和出站通道适配器

入站和出站通道适配器之间的根本区别是什么?

任何例子都会非常有用.

我已经回顾了Spring文档,这种"定向"区别对我来说并不清楚.我支持配置了出站通道适配器的应用程序,但我发现行为计数器直观的出站标签.此适配器获取外部文件,然后将其带入我们解析文件并保留数据的应用程序.

这与问题类似,但我想更加关注通道适配器,并希望获得更多反馈!

谢谢!

java spring spring-integration enterprise-integration

15
推荐指数
2
解决办法
8360
查看次数

Eclipse Neon - 内容辅助时机

多年来我一直是Eclipse用户,内容协助一直很好.自从我转换到Eclipse Neon以来,我一直遇到内容辅助问题.内容辅助挂起几秒钟然后我收到以下错误:

错误信息

我的同事也在使用Eclipse Neon,但没有这个问题.有没有关于如何解决这个问题的建议?

在遇到这个问题后,我试图减少一些开销,但是我已经搞乱了我的内容辅助设置,但这没有帮助.当前状态如下所示.

设置

高级设置

另外一个注意事项 - 我也尝试将以下内容添加到我的eclipse.ini中,但这也无济于事.

-vmargs -Dorg.eclipse.jdt.ui.codeAssistTimeout = 60000

java eclipse content-assist eclipse-neon

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

Spring Data JPA - 在没有@Transactional的情况下获取了Lazy Loaded集合

我的期望是在事务范围内访问集合时应该获取延迟加载的集合.例如,如果我想获取一个我可以调用的集合foo.getBars.size().缺少活动事务应该导致异常,并显示错误消息

没有懒惰地初始化一组条形图:....无法初始化代理 - 没有会话

但是,我注意到我的最新应用程序中的行为有所不同.我正在使用Spring Boot 1.5.1和"data-jpa"启动器.我过去使用过Spring Boot,但数据-jpa启动器对我来说是新的.

考虑以下情况.我有一个懒惰加载的ManyToMany集合.

@SuppressWarnings("serial")
@Entity
@Table(name = "foo")
public class Foo implements java.io.Serializable {
    ....
    private Set<Bar> bars = new HashSet<Bar>(0);
    ....

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinTable(name = "foo_bar_map",
        joinColumns = {@JoinColumn(name = "foo_id", nullable = false, updatable = false)},
        inverseJoinColumns = {@JoinColumn(name = "bar_id", nullable = false, updatable = false)})
    public Set<Bar> getBars() {
        return this.bars;
    }

    public void setBar(Set<Bar> bars) {
        this.bars = bars;
    }
Run Code Online (Sandbox Code Playgroud)

我的服务方法未标记为Transactional,但我正在访问延迟加载的集合

@Service
public …
Run Code Online (Sandbox Code Playgroud)

java spring jpa spring-data spring-boot

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

由<context:component-scan /> vs <mvc:annotation-driven>给出的@Controller的Spring支持

我一直在研究使用mvc:annotation-driven标签时我们有哪些额外的功能,我很难消化结果,特别是在@Controller注释方面.我知道这与这个问题非常相似,但请听我说.

根据Spring文档

@Controller注释的基本目的是充当带注释的类的构造型,指示其角色.调度程序将扫描这些带注释的类以查找映射方法,检测@RequestMapping注释(请参阅下一节).

然后,文档继续显示上下文:component-scan标记提供此支持.所以这一切都很好,但后来我看着mvc:annotation-driven给了我们什么,上面提到的stackoverflow 问题提供了以下答案

mvc:annotation-driven声明显式支持注释驱动的MVC控制器(即@RequestMapping,@ Controller,虽然支持这些是默认行为),并通过@Valid添加对declrative验证的支持,并使用@RequestBody添加消息体编组/ ResponseBody.

这对我来说似乎有点多余.也许我得不到这种明确的支持.再次,回顾官方的Spring 文档,我们得到以下内容

[mvc:annotation-driven]注册Spring MVC将请求分派给@Controllers所需的DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter bean.

这听起来与我从文档中提供的最后一个例子非常相似.如果任何人都可以提供一些关于我们如何使用@Controller注释只使用上下文:component-scan标签,一些限制是什么,那么我们在添加mvc:annotation-driven时获得的附加功能的示例标签,我认为这将非常有帮助.在此先感谢任何支持.

java spring spring-mvc

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

为给定值更新Oracle XMLType列内容

我在Oracle 11g数据库中有一个表SECTION_ANSWER,它有一个XMLType列.XML非常简单,它遵循以下结构:

<section sectionID="1">
    <question questionID="1" questionType="text">
        <answer>Green</answer>
    </question>
    <question questionID="2" questionType="multiselect">
        <answer>101</answer>
        <answer>102</answer>
        <answer>105</answer>
        <answer>107</answer>
    </question>
</section>
Run Code Online (Sandbox Code Playgroud)

我需要将'105'的答案更新为'205'.我过去使用UPDATEXML做过类似的事情.例如,如果我要更新只有一个答案的questionID 1,我可以执行以下操作:

UPDATE SECTION_ANSWER sa
SET sa.section_answerxml = updatexml(sa.section_answerxml, '//section[@sectionID="1"]/question[@questionID="1"]/answer/text()', 'BLUE') 
Run Code Online (Sandbox Code Playgroud)

但是,这次更新questionID 2我遇到了麻烦,因为有多个答案节点,我不知道需要更新的内容将在哪个节点中.任何人都可以了解如何执行此类更新?

xml sql oracle xquery updatexml

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

ProjectLombok - 安装Eclipse Luna后在Eclipse中未定义的方法

我下载了Eclipse Luna并导入了一个稳定的现有Maven项目,该项目使用了@Getter和@Setter lombok注释.注释被识别,但Eclipse标记对getter或setter方法的任何调用,给出错误消息

对于类型Foo,方法getSomething()未定义

与其他stackoverflow问题不同,像这样,我遇到了这个问题,尽管我已经更新了我的eclipse.ini,并将lombok.jar添加到与我的eclipse.exe和eclipse.ini文件相同的目录中.eclipse.ini的变化虽然没有区别,但我到处都有错误的市场!

的eclipse.ini

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:\Program Files\Java\jdk1.7.0_51\bin\javaw.exe
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
Run Code Online (Sandbox Code Playgroud)

我做了一个项目>干净,我已经尝试使用我的lombok jar的完整路径,我已经退出并重新启动Eclipse都无济于事.

我在这里错过了什么?谢谢你的帮助!!!

java eclipse maven lombok

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