小编Mua*_*tik的帖子

spring mvc rest service redirect/forward/proxy

我使用spring mvc框架构建了一个Web应用程序来发布REST服务.例如:

@Controller
@RequestMapping("/movie")
public class MovieController {

@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public @ResponseBody Movie getMovie(@PathVariable String id, @RequestBody user) {

    return dataProvider.getMovieById(user,id);

}
Run Code Online (Sandbox Code Playgroud)

现在我需要部署我的应用程序,但是我遇到以下问题:客户端无法直接访问应用程序所在的计算机(有防火墙).因此,我需要在代理机器上(可由客户端访问)调用实际的休息服务的重定向层.

我尝试使用RestTemplate进行新的调用:例如:

@Controller
@RequestMapping("/movieProxy")
public class MovieProxyController {

    private String address= "http://xxx.xxx.xxx.xxx:xx/MyApp";

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public @ResponseBody Movie getMovie(@PathVariable String id,@RequestBody user,final HttpServletResponse response,final HttpServletRequest request) {

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        RestTemplate restTemplate = new RestTemplate();
        return restTemplate.exchange( address+ request.getPathInfo(), request.getMethod(), new HttpEntity<T>(user, headers), Movie.class);

}
Run Code Online (Sandbox Code Playgroud)

这没关系,但我需要重写控制器中的每个方法以使用resttemplate.此外,这会导致代理计算机上的冗余序列化/反序列化.

我尝试使用restemplate编写泛型函数,但它没有用完:

@Controller …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc resttemplate spring-boot

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

腌制芹菜

按照此处的说明,我将脚本从github复制到/etc/init.d/celeryd,然后使其可执行;

$ ll /etc/init.d/celeryd
-rwxr-xr-x 1 root root 9481 Feb 19 11:27 /etc/init.d/celeryd*
Run Code Online (Sandbox Code Playgroud)

我按照说明创建了配置文件/ etc/default/celeryd:

# Names of nodes to start
#   most will only start one node:
#CELERYD_NODES="worker1"
#   but you can also start multiple and configure settings
#   for each in CELERYD_OPTS (see `celery multi --help` for examples).
CELERYD_NODES="worker1 worker2 worker3"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/usr/local/bin/celery"
#CELERY_BIN="/virtualenvs/def/bin/celery"

# App instance to use
# comment out …
Run Code Online (Sandbox Code Playgroud)

python linux celery celeryd

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

在android中创建持久搜索栏

我想要一个位于布局顶部的搜索框,如下所示:

在此输入图像描述 http://www.google.com/design/spec/patterns/search.html#search-in-app-search

我不知道是否必须使用文本框,白框等自己构建它,或者已经有内置小部件或开源工作.

实际上从头开始设计一切对我来说似乎并不合适.因为通过这样做,我将在未来的Android API中具有不兼容的视图或用户体验.

有哪些选择,最常用的方法是什么?

android android-widget android-ui

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

在select2中捕获enter键

我正在使用select2来呈现可编辑的选择框.当用户写一个没有出现的语句时list(select2, data),我会显示一个按钮,将该语句添加到列表中.

强迫用户点击按钮在我看来有点沮丧.是否可以在select2中捕获回车键?我想让用户只需按回车键即可将他/她的新语句添加到列表中.

javascript jquery twitter-bootstrap jquery-select2

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

如何获取mongodb的加载配置文件路径

我想以编程方式获取mongodb加载的配置文件的路径.可以通过运行命令或其他东西来获得这个吗?

mongodb

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

修改数组的最后一个元素

我有一个像这样的对象结构:

 {
    name: "...",
    pockets: [
        {
            cdate: "....",
            items: [...]
        }
        ...
    ]
 }
Run Code Online (Sandbox Code Playgroud)

在更新操作中,我想在最后一个口袋项的items字段中添加一些记录.使用点符号是我知道访问子文档的唯一方法,但我无法得到我想要的.所以,我正在寻找这样的东西:

  • pockets.-1.items
  • 口袋.$ last.items

是否可以修改最后一个元素?如果有,怎么样?

arrays mongodb

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

如何使MediaWiki网站多语言

我已经安装了MediaWiki网站.我认为默认的MediaWiki只支持在安装期间配置的一种语言.

MediaWiki有没有办法支持wikipedia.org这样的两种或更多语言?页面的可用语言应该像维基百科一样列在左侧,当用户单击某种语言时,可以看到所选语言的页面版本.

支持多语言的传统方式是什么?

multilingual wiki mediawiki

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

ConfigurationProperties不绑定属性

我想通过使用@ConfigurationProperties注释将我的application.properties自动绑定到一个类中.首先,我尝试使用@Value注释,并能够将属性值注入类变量.但是,@ ConfigurationProperties没有将属性注入值.

我的application.properties:

spring.jpa.show-sql=false
my.url=my_url
my.name=muatik
Run Code Online (Sandbox Code Playgroud)

application.java

package com.muatik;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;


@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        final ApplicationContext ctx = SpringApplication.run(Application.class, args);
        final ConfigBinder confs = ctx.getBean(ConfigBinder.class);
        System.out.println(confs.getUrl());
        System.out.println(confs.getName());
    }

}
Run Code Online (Sandbox Code Playgroud)

ConfigBinder.java

package com.muatik;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;



@Component
@ConfigurationProperties(prefix="my")
public class ConfigBinder {

    @Value("${my.name}")
    private String name;

    private String url; // expected to be filled automatically

    public String getUrl() {
        return this.url;
    }

    public String …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

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

使用spring-data-redis将原始json存储在redis中

我正在使用RedisCacheManager将我的缓存数据存储在我的spring-boot应用程序中.默认的串行器似乎将所有内容序列化为字节,并从字节序列化到适当的java类型.

但是,我想将缓存数据存储为json,以便我可以从非Java客户端读取它.

我发现从默认的切换到其他序列化器,如Jackson2JsonRedisSerializer应该可以工作.执行此操作后,反序列化阶段失败.

的pom.xml

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
    </dependency>

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

CacheConfig.java

@Configuration
@EnableCaching
public class CacheConfig {

    @Bean
    public RedisConnectionFactory createRedisConnectionFactory() {
        JedisConnectionFactory factory = new JedisConnectionFactory();
        factory.setHostName("localhost");
        return factory;
    }

//    SPRING-DATA-REDIS ALREADY PROVIDES A STRING REDIS TEMPLATE, SO THE FOLLOWING IS NOT NECESSARY
//    @Bean
//    public RedisTemplate<String, String> createRedisTemplate(RedisConnectionFactory factory) {
//        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
//        redisTemplate.setConnectionFactory(factory);
//        return redisTemplate;
//    }

    @Bean
    public CacheManager redisCacheManager(RedisTemplate redisTemplate) {
        RedisCacheManager cacheManager = new …
Run Code Online (Sandbox Code Playgroud)

java serialization spring json spring-data

8
推荐指数
2
解决办法
8128
查看次数

在datadog中使用正则表达式查询标签值的指标

我想使用正则表达式过滤标记值的指标。我可以在Prometheus中做到,但在Datadog中找不到等效的方法。

例如,要选择status标签值以开头的以下指标2,我可以使用查询http.server.requests.count{status=~"^2..$"}

我在Datadog中也具有相同的指标和相同的标签,但是找不到具有相同查询的方法。

monitoring datadog

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