小编pvp*_*ran的帖子

弹出启动和mongo自定义查询与订单

我有一个自定义查询在org.springframework.data.mongodb.repository该变

@Query("{'additionalInfo.suspicious' : true}")
List<Trip> findSuspiciousTripsByFleetId(String fleetId, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)

我如何通过(日期desc)向此添加订单?

OrderByDateDesc例如,它是否神奇地接受后缀?

提前致谢.

mongodb spring-data-mongodb spring-boot

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

Jpa存储库保存类型参数"S"的推断类型"S"不在其范围内

我有实体用户

@Entity
@Data
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String username;

    private String password;

}
Run Code Online (Sandbox Code Playgroud)

UserRepository

public interface UserRepository extends JpaRepository<UserRepository, Long> {
    User findByUsername(String username);
}
Run Code Online (Sandbox Code Playgroud)

调节器

@RestController
@RequestMapping("/user")
public class UserController {

    private UserRepository userRepository;
    private BCryptPasswordEncoder bCryptPasswordEncoder;

    public UserController(UserRepository userRepository, BCryptPasswordEncoder bCryptPasswordEncoder) {
        this.userRepository = userRepository;
        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
    }

    @PostMapping("/sign-up")
    public void signUp(@RequestBody User user) {
        user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
        userRepository.save(user);
    }
}
Run Code Online (Sandbox Code Playgroud)

在signUp方法中的UserController类userRepository.save(user)throw error类型参数'S'的推断类型'S'不在其范围内; 应该实现'Repository.UserRepository

java spring-data spring-data-jpa spring-boot

3
推荐指数
2
解决办法
6587
查看次数

为什么Spring ReactiveMongoRepository没有Mono的保存方法?

我有一个扩展ReactiveMongoRepository的MovieRepository.我想以反应方式保存单个POJO.但ReactiveMongoRepository不为Mono或Publisher提供保存方法.我必须使用block()方法或使用saveAllReactiveMongoRepository中的方法.

public Mono<ServerResponse> create(ServerRequest request) {

    Mono<Movie> movieMono = request.bodyToMono(Movie.class);
    return movieRepository.save(movieMono.block()) //
            .flatMap((movie) -> ServerResponse.ok().body(fromObject(movie)));
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决这类问题?我不认为使用块方法是反应式编程的好主意.

spring mongodb reactive-programming spring-data-mongodb project-reactor

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

Spring Boot Apache Camel Routes 测试

我有一个 Springboot 应用程序,其中配置了一些 Camel 路由。

public class CamelConfig {
    private static final Logger LOG = LoggerFactory.getLogger(CamelConfig.class);

    @Value("${activemq.broker.url:tcp://localhost:61616}")
    String brokerUrl;

    @Value("${activemq.broker.maxconnections:1}")
    int maxConnections;

    @Bean
    ConnectionFactory jmsConnectionFactory() {
        PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(new ActiveMQConnectionFactory(brokerUrl));
        pooledConnectionFactory.setMaxConnections(maxConnections);
        return pooledConnectionFactory;
    }

    @Bean
    public RoutesBuilder route() {
        LOG.info("Initializing camel routes......................");
        return new SpringRouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("activemq:testQueue")
                  .to("bean:queueEventHandler?method=handleQueueEvent");
            }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

我想测试从activemq:testQueue到 的这条路线queueEventHandler::handleQueueEvent。我尝试了这里提到的不同内容http://camel.apache.org/camel-test.html,但似乎没有让它工作。

我正在尝试做这样的事情:

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = {CamelConfig.class,   CamelTestContextBootstrapper.class})
    public class CamelRouteConfigTest {

    @Produce(uri …
Run Code Online (Sandbox Code Playgroud)

apache-camel spring-boot camel-test

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

使用@Qualifier的@Bean声明不起作用

可以说我有一个配置类(JmsQueueConfig,见下文).在本课程中,我想为整个应用程序配置多个队列.对于一个队列,没有问题.但是,当我添加第二个队列并尝试从服务(MemberService)使用其中一个队列时,Spring-boot告诉我

com.example.notification.application.jms.JmsEventPublisher中构造函数的参数1需要一个bean,但是找到了2个: - queueAccountToNotification:由类路径资源中的方法'queueAccountToNotification'定义[com/example/notification/application/jms/JmsQueueConfig.class] - queueNotificationToAccount:由类路径资源[com/example/notification/application/jms/JmsQueueConfig.class]中的方法'queueNotificationToAccount'定义

行动:

考虑将其中一个bean标记为@Primary,更新使用者以接受多个bean,或使用@Qualifier标识应该使用的bean

这是我的Config-Class:

@Configuration
@EnableJms
@ImportAutoConfiguration(classes = {
        JmsAutoConfiguration.class,
        ActiveMQAutoConfiguration.class
})
public class JmsQueueConfig {

   @Value("${APP_QUEUE_ACCOUNT_TO_NOTIFICATION}")
   private String queueAccountToNotificationName;

   @Value("${APP_QUEUE_NOTIFICATION_TO_ACCOUNT}")
   private String queueNotificationNameToAccount;

   @Bean
   @Qualifier("q1")
   public Queue queueAccountToNotification() {
      return new ActiveMQQueue(queueAccountToNotificationName);
   }

   @Bean
   @Qualifier("q2")
   public Queue queueNotificationToAccount() {
      return new ActiveMQQueue(queueNotificationNameToAccount);
   }

   @Bean
   public MessageConverter jacksonJmsMessageConverter() {
      MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
      converter.setTargetType(MessageType.TEXT);
      converter.setTypeIdPropertyName("_type");
      return converter;
   }

   @Bean
   @Qualifier("p1")
   public EventPublisher eventPublisher(JmsTemplate jmsTemplate) {
      return new JmsEventPublisher(jmsTemplate, new ActiveMQQueue(queueAccountToNotificationName));
   }

   @Bean
   public MessageConverter …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection spring-boot

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

CamelHttpResponseCode 在服务错误时为空

我是骆驼新手,正在编写一个小型 POC 以在现有应用程序中实现。应用程序将 xml 请求作为输入,其中包含请求的服务和相关数据。然后它会一一调用这些服务。当服务被成功调用时,我会在处理器中检索 http 响应代码,如下所示,并执行进一步的逻辑:

Object code = exchange.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE);
    if(null!=code && code instanceof Integer)
    {
        responseCode = (Integer) code;
    }
Run Code Online (Sandbox Code Playgroud)

在成功的情况下,收到的 responseCode = 201

根据responseCode,我知道服务调用是否成功,然后继续下一个。

但是,我试图通过使服务 url 不正确来产生负面情况,并且再也看不到 http 响应代码:

原始服务网址 - http://xxx:0000/.../.../.../.../...

修改后的服务网址 - http://xxx:0000/.../.../.../.../abc/...

在失败的情况下,收到的 responseCode = null

在邮递员中,我收到以下错误:

org.apache.camel.http.common.HttpOperationFailedException:HTTP 操作失败调用http://xxx:0000/.../.../.../.../abc/... statusCode: 404 at org.apache.camel.component.http.HttpProducer.populateHttpOperationFailedException(HttpProducer.java:274) at org.apache.camel.component。 http.HttpProducer.process(HttpProducer.java:183)

我不知道为什么当邮递员的错误消息中出现 http 响应代码时,Exchange 不包含它。

我使用 onException 来处理任何异常,然后调用处理器来进一步处理流程:

<camel:onException>
                <camel:exception>java.lang.Exception</camel:exception>
                <camel:process ref="xxxProcessor" />
            </camel:onException>
Run Code Online (Sandbox Code Playgroud)

我想我可以将 responseCode=null 视为失败并继续我的逻辑,但想了解为什么响应代码被返回为 null。

提前致谢!

java spring apache-camel

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

将子对象和父对象的 Arraylist 传递给相同的方法

我有 B 类扩展 A 类。如何在 C 类中编写一个方法,该方法可以接收包含 B 类或 A 类对象的 ArrayList 而不覆盖?

public class A {
    //Some methods here
}

public class B extends A {
    //Some methods here
}

public class C {

    public Static void main(String[] args){
        ArrayList<A> one = new ArrayList<>();
        one.add(new A());

        ArrayList<B> two = new ArrayList<>();
        two.add(new B())

        doStuff(one);
        doStuff(two);
    }

    public void doStuff(args){
       //go ahead do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

java inheritance multiple-inheritance

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

将 AWS 启动模板复制到另一个区域

我想知道是否可以将一个区域中创建的启动模板复制到另一个区域。

这背后的想法是,如果由于某种原因该区域出现故障,我想使用此启动模板在另一个区域启动我的服务。

amazon-ec2 amazon-web-services

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

如何为一对一关系编写 Spring JPA 查询?

我是 Spring JPA 的新手(或者说是在很长一段时间后研究它),我需要一些帮助来编写 JPA 存储库。我有一个实体类 Itinerary 和 User。两者之间是一对一的关系。

@Entity
@Table(name = "ITINERARY")
public class Itinerary implements Serializable {

    @Id
    @Column(name = "ID")
    @GeneratedValue(generator = "Itinerary_IDGenerator", strategy = GenerationType.SEQUENCE)
    @SequenceGenerator(name = "Itinerary_IDGenerator", sequenceName = "Itinerary_IDGenerator", allocationSize = 1)
    private long id;

    @Basic(optional = false)
    @Column(nullable = false)
    @Temporal(TemporalType.DATE)
    private Date itineraryDate;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "USER_ID")
    User user;
}

@Entity
@Table(name = "USER")
public class User implements Serializable {

    @Id
    @Column(name = "ID")
    @GeneratedValue(generator = "User_IDGenerator", strategy = GenerationType.SEQUENCE) …
Run Code Online (Sandbox Code Playgroud)

spring-data spring-data-jpa

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