小编Mat*_*ana的帖子

Spring Boot Dev Tools将它们关闭以进行生产?

我正在阅读很多关于spring dev工具的内容,我已经尝试过它们,它们看起来很酷.但是,我不明白它们是如何启用/禁用的.例如,只是添加依赖项,一切都神奇地起作用,但是如果我想将代码部署到生产中呢?开发工具是否仍在运行,我需要使用配置文件或其他东西禁用它们?

spring spring-boot

18
推荐指数
2
解决办法
8518
查看次数

如何在代理后面设置Spring Boot CLI

我目前正在尝试利用公司代理后面的Spring Boot CLI.我尝试了一些不同的方法来为Spring Boot CLI设置代理而没有成功.

我试过设置:

1)代理的JAVA_OPTS环境变量

-Dhttp.proxyHost=proxyhostURL
-Dhttp.proxyPort=proxyPortNumber
-Dhttp.proxyUser=someUserName
-Dhttp.proxyPassword=somePassword
Run Code Online (Sandbox Code Playgroud)

2)我尝试过只配置http代理环境变量

 http_proxy
Run Code Online (Sandbox Code Playgroud)

我以前发现了几年前关闭的github错误,但似乎并不相关:https: //github.com/spring-projects/spring-boot/issues/136

谢谢你的帮助!

C:\Windows\system32>spring cloud eureka
Resolving dependencies..

??????????????? ??????? ???????   ??? ???????      ??????????      ??????? ???   ??????????
????????????????????????????????  ???????????     ???????????     ????????????   ???????????
????????????????????????????????? ??????  ????    ???     ???     ???   ??????   ??????  ???
??????????????? ????????????????????????   ???    ???     ???     ???   ??????   ??????  ???
???????????     ???  ????????? ???????????????    ??????????????????????????????????????????
???????????     ???  ?????????  ????? ???????      ??????????????? ???????  ??????? ???????

-- Spring Cloud Launcher --

2016-11-22 07:21:24.970  INFO 12076 --- [-cloud-launcher] …
Run Code Online (Sandbox Code Playgroud)

proxy spring spring-boot

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

Run As:Spring Boot App和Run As:Java Application之间有区别吗?

如果我使用Spring Tool Suite或Spring IDE插件进行eclipse,我可以通过2种方式运行spring boot app:

Run As:
    Spring Boot App
    Java Application
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这两个命令都可以工作,并且可以启动我的Spring启动应用程序而不会出现问题.但是,我想了解两个不同过程之间的区别.他们之间确实存在差异,还是他们的工作相同?

spring spring-ide spring-tool-suite spring-boot

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

如何在微服务架构(HAL,ALPS)中正确设置Restful服务的文档

我已经阅读了很多关于如何正确设置微服务的内容,而且我已经开始讨论一些最近的概念,包括:HAL,ALPS和HAL浏览器.我在历史上记录了利用Swagger UI的事情,但是,我逐渐明白URL中心不是正确的方式,我应该围绕资源和链接组织文档,这是新技术的用途.关于这些新概念,我有很多知识空白,所以我希望能够正确理解这些技术如何协同工作,以便我了解每个可以融入其中的技巧.

我目前的理解是:

HAL - 是JSON之上的一种额外格式,可让您通过链接浏览API.

ALPS - 这是JSON之上的一种额外格式,可以让我提供基于英语的描述来帮助描述我的资源

HAL浏览器 - 以资源和链接为中心的文档的Swagger UI替换.与HAL和ALPS一起使用?

我目前对这些技术的理解是准确还是缺乏某些方面?同样实现我并不完全理解ALPS和HAL如何一起交互.我知道hal + json格式和alps + json格式,但我还没有看到hal + alps + json格式.

我想澄清的最后一个方面是我应该如何公开这些资源.通常我总是专注于非常精益的json消息是围绕预期发送hal + json格式,还是我应该在另一个URL上托管这些端点专门用于类似于swagger/HAL浏览器的文档?

java spring spring-data spring-data-rest microservices

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

在Spring Boot Starter中获取ArtifactId和Version

我目前正在开发一个Spring Boot Starter,它将托管Restful Web服务,其中包含一些有关正在运行的应用程序的元数据.

我无法从mainfest文件中提取artifactId和versionId.我相信我的问题是在主Test测试应用程序之前加载了自动配置类,因此尚未发现清单.如果我从错误的角度接近问题,我不确定我的逻辑是否正确.

我最初按照以下教程进行设置.

这给了我3个独立的项目

Generic Spring Services with no context AutoConfiguration project for these services Spring Boot starter

我将启动器与测试项目配对作为最终结果.

目前,maven正在与Spring Boot一起使用以生成清单文件.

Implementation-Title: MyExampleProjectWithCustomStarter Implementation-Version: 0.0.1-SNAPSHOT Archiver-Version: Plexus Archiver Built-By: mcf Implementation-Vendor-Id: com.coolCompany Spring-Boot-Version: 1.5.4.RELEASE Implementation-Vendor: Pivotal Software, Inc. Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.coolcompany.SpringBootExampleApplication Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Created-By: Apache Maven 3.5.0 Build-Jdk: 1.8.0_131 Implementation-URL: http://someurl

但是,当我尝试从我的通用服务包中找到Example项目的清单文件时,我找不到该文件.

  private String getApplicationVersion(String applicationName, List<Attributes> manifests) {
    String unknownVersion = "0.0.0-UNKNOWN";

    for (Attributes attr : manifests) {
      String title = …
Run Code Online (Sandbox Code Playgroud)

java spring manifest maven spring-boot

7
推荐指数
2
解决办法
7288
查看次数

Oauth2 /特定实体的密码流/检查权限

我的API中的主要数据信息和信息链接到项目(实体),密码流的好方法是什么:管理与具有spring security和OAuth2的项目链接的特定权限?

在这个应用程序中,您有5个微服务:

  • UAA微服务:授权服务器
  • 目录微服务
  • 订购微服务
  • 发票微服务
  • 客户微服务

缩放权限:

UUAMICROSERVICE

每个用户可以拥有多个项目,并且可以拥有每个项目的权限:

  • CAN_MANAGE_CATALOG
  • CAN_VIEW_CATALOG
  • CAN_MANAGE_ORDER
  • CAN_VIEW_ORDER
  • CAN_MANAGE_INVOICE
  • CAN_VIEW_INVOICE
  • ...

我有很多想法,但我不确定我是否有好的方法:

使用案例:我想要终止端点:

http://catalog-service/{project_key}/catalogs
Run Code Online (Sandbox Code Playgroud)

只有拥有项目{project_key}权限VIEW_CATALOG或MANAGE_CATALOG的用户才能列出项目中的所有目录

我的第一个想法是:使用预授权来使用ProjectAccessExpression

CatalogController.java

@Controller
public class CatalogController {
     @PreAuthorize("@projectAccessExpression.hasPermission(#projectKey, 'manageCatalog', principal)" +
        " or @projectAccessExpression.hasPermission(#projectKey,  'viewCatalog', principal)")
    @RequestMapping(
            value = "/{projectKey}/catalogs",
            method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_VALUE
    )
    public @ResponseBody List<Catalog> findByProject(@PathVariable("projectKey") String projectKey) {
        return catalogService.find();
    }
}
Run Code Online (Sandbox Code Playgroud)

ProjectAccessExpression.java

@Component
public class ProjectAccessExpression {

        private RestTemplate restTemplate;
        public boolean havePermission(String projectKey, String permission , String username) { …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-boot spring-security-oauth2

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

使用Couchbase进行单元和集成测试

我最近建立了一个使用Spring-Data-Couchbase的新项目,而我对如何在此处进行单元和集成测试完全感到困惑。

通常,使用JPA,我可以以某种方式模拟我的存储库(假设对于使用Spring的长沙发来说这是相似的),并且对于单元测试来说还可以,但是通常对于JPA,我连接一个内存数据库并具有完整的集成测试套件。有什么办法可以通过沙发床做到这一点?

另外,如果您不介意在此处提及任何提示,因为这是我的第一个主要NoSQL项目:)谢谢!

java spring unit-testing couchbase spring-data-couchbase

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

使用 Spring Boot 找不到 Spring Data Rest Endpoint

我是第一次尝试 Spring Data Rest,但我似乎无法在localhost:8080/books “有人看到我配置错误的地方吗?”中找到我的存储库端点吗?

应用类

@SpringBootApplication
@ComponentScan(basePackageClasses = {Book.class})
public class SpringDataMicroServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringDataMicroServiceApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

图书实体

@lombok.Getter
@lombok.Setter
@lombok.RequiredArgsConstructor
@lombok.EqualsAndHashCode(of = "isbn")
@lombok.ToString(exclude="id")
@Entity
public class Book implements Serializable {

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

    private String isbn;

    private String title;

    private String author;

    private String description;
}
Run Code Online (Sandbox Code Playgroud)

书库

public interface BookRepository extends CrudRepository<Book, Long> {
}
Run Code Online (Sandbox Code Playgroud)

Gradle 构建文件

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'io.spring.gradle:dependency-management-plugin:0.5.4.RELEASE' …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-mvc spring-data-rest

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

Doobie与Hikari设置

大家好,我想让hikari交易器设置为与标准交易器一样

val xa = HikariTransactor.newHikariTransactor[IO](
  "com.mysql.jdbc.Driver",
  JdbcUrl,
  Username,
  Password
)

sql"""select DISTINCT gcpProject FROM JobStatus"""
     .query[String]    // Query0[String]
     .stream           // Stream[ConnectionIO, String]
     .take(5)          // Stream[ConnectionIO, String]
     .compile.toList   // ConnectionIO[List[String]]
     .transact(xa)     // IO[List[String]]
     .unsafeRunSync    // List[String]
     .foreach(println) // Unit
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给了我:

Type mismatch, expected: tansactor.Transactor[NotInferedM], actual: IO[hikari.HikariTransactor[IO]]
Run Code Online (Sandbox Code Playgroud)

关于如何使它正常工作的任何想法?

请注意,先前的解决方案每次都使用一个连接并且可以正常工作:

val xa = Transactor.fromDriverManager[IO](
  "com.mysql.jdbc.Driver",
  JdbcUrl,
  Username,
  Password
)
Run Code Online (Sandbox Code Playgroud)

但我真的可以使用连接池

mysql database scala hikaricp doobie

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