小编She*_*tal的帖子

Spring Boot EntityManagerFactoryBuilder未自动装配

在Spring Boot应用程序中,我正在尝试设置多个数据库连接.我已经开始构建主数据源,但是我在mySqlEntityManagerFactory方法上遇到以下错误.

无法自动装配.没有EntityManagerFactoryBuilder的bean

import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.Transactional;

import javax.persistence.PersistenceContext;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

@Configuration
@Transactional
@EnableTransactionManagement
@EnableJpaRepositories(
        basePackages = "digital.sheppard.dao",
        entityManagerFactoryRef = "entityManager",
        transactionManagerRef = "transactionManager")
public class PrimaryDBConfig {

    @Bean(name="dataSource")
    @Primary
    @ConfigurationProperties(prefix = "primary.datasource.mysql")
    public DataSource mysqlDataSource() {
        return DataSourceBuilder.create().build();
    }

    @PersistenceContext(unitName = "primary")
    @Primary
    @Bean(name = "entityManager")
    public LocalContainerEntityManagerFactoryBean mySqlEntityManagerFactory(EntityManagerFactoryBuilder builder) {
        return builder.dataSource(mysqlDataSource()).persistenceUnit("primary").properties(jpaProperties())
                .packages("digital.sheppard.model").build();
    }

    private Map<String, Object> jpaProperties() …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

20
推荐指数
2
解决办法
8977
查看次数

Gitlab CI如何通过SSH部署应用程序

我正在使用Hosted Gitlab来托管我的Git存储库,最近我一直在使用它来构建/部署PHP和Java应用程序到服务器.

我想要做的是一旦构建完成,使用SSH部署应用程序.有时这可能只是通过SSH将最终构建(PHP文件)的内容上传到服务器,或者有时可能上传已编译的.jar文件,然后在远程服务器上执行命令以重新启动服务.

我已经将自己的Docker容器设置为构建环境,这包括Java,PHP,Composer和Maven等所有构建完成所需的东西.我正在使用此图像来运行构建.

我想知道的是,我如何通过SSH连接外部服务器以执行我可以在gitlab-ci.yaml文件中指定的部署命令?

gitlab gitlab-ci

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

Hikari - Spring Boot 忽略 hikari 属性

我有一个 Spring Boot 2 应用程序,它有两个数据源。两个数据源都可以工作,但是我无法更改最大池大小等属性,我的更改没有生效。

我在 application.properties 文件中配置两个数据源;

spring.datasource.url=jdbc:sqlserver://server;databaseName=ProductionMetrics
spring.datasource.username=ProductionMeusernametricsUser
spring.datasource.password=password
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.hikari.maximum-pool-size=20

# Products
trwbi.datasource.url=jdbc:sqlserver://server;databaseName=TRWBI
trwbi.datasource.username=username
trwbi.datasource.password=password
trwbi.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
trwbi.datasource.hikari.maximum-pool-size=20
Run Code Online (Sandbox Code Playgroud)

然后,我像这样设置两个数据源;

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
        entityManagerFactoryRef = "defaultEntityManagerFactory",
        transactionManagerRef = "defaultTransactionManager",
        basePackages = {
                "com.domain.visualisation.shared.repository"
        }
)
public class DefaultDbConfig {

    @Primary
    @Bean(name = "defaultDataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource defaultDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Primary
    @Bean(name = "defaultEntityManagerFactory")
    public LocalContainerEntityManagerFactoryBean
    entityManagerFactory(
            EntityManagerFactoryBuilder builder,
            @Qualifier("defaultDataSource") DataSource dataSource
    ) {
        return builder
                .dataSource(dataSource)
                .packages("com.domain.visualisation.shared.entities")
                .persistenceUnit("default")
                .build();
    }

    @Primary
    @Bean(name = "defaultTransactionManager")
    public …
Run Code Online (Sandbox Code Playgroud)

properties-file spring-boot hikaricp

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

Spring启动,JSP文件作为视图在IntellJ中运行时不加载

我在intelliJ中创建了一个简单的Spring Boot Web应用程序.我在/ src/main/resources/templates /文件夹中放了一个简单的.jsp文件,其中包含一些基本的HTML.

我试图在控制器中返回它,但是我收到了这个错误;

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Sep 09 10:37:46 BST 2016
There was an unexpected error (type=Not Found, status=404).
No message available
Run Code Online (Sandbox Code Playgroud)

我假设Spring无法找到.jsp文件,但是控制台中没有其他错误可以提供任何进一步的信息.

这是我简单的控制器;

@Controller
@RequestMapping("/test")
public class TestController {

    @RequestMapping("")
    public ModelAndView index() {
        return new ModelAndView("test");
    }

}
Run Code Online (Sandbox Code Playgroud)

我在application.properties文件中包含了以下内容;

spring.mvc.view.prefix = /templates/
spring.mvc.view.suffix = .jsp
Run Code Online (Sandbox Code Playgroud)

我的POM文件包含以下依赖项;

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jersey</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId> …
Run Code Online (Sandbox Code Playgroud)

spring jsp spring-mvc intellij-idea spring-boot

8
推荐指数
4
解决办法
6054
查看次数

如何在ASP.NET Core的登录部分视图中显示用户全名

我是ASP.NET Core的新手,我大部分现有的经验都是Java/PHP,大约10年前还有一点ASP.NET MVC.

我正在使用Mac,所以我正在尝试使用Visual Studio Code和ASP.NET Core构建项目.

我使用'yo'创建了一个Web应用程序.我已经更改了默认数据库连接字符串以使用我在服务器上的MSSQL数据库.我运行'dotnet ef database update'命令在数据库中创建必要的表.

我想为用户添加firstname和lastname,所以我在AspNetUser表中创建了列,并编辑了ApplicationUser类以反映这一点;

namespace pabulicms.Models
{
    // Add profile data for application users by adding properties to the ApplicationUser class
    public class ApplicationUser : IdentityUser
    {

        public string Firstname { get; set; }
        public string Lastname { get; set; }

    }
}
Run Code Online (Sandbox Code Playgroud)

我已经开始修改注册表单的视图模型以包含firstname和lastname,并且我已经更新了Signup方法,以便将firstname和lastname保存到数据库中.

默认情况下,_LoginPartial.cshtml视图显示用户的用户名(电子邮件地址),我想更改此选项以显示用户的全名,但我不确定如何执行此操作.

这就是_LoginPartial目前的样子;

@using Microsoft.AspNetCore.Identity
@using pabulicms.Models

@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

@if (SignInManager.IsSignedIn(User))
{
    <form asp-area="" asp-controller="Account" asp-action="Logout" method="post" id="logoutForm" class="navbar-right">
        <ul class="nav navbar-nav navbar-right">
            <li>
                <a …
Run Code Online (Sandbox Code Playgroud)

asp.net-core

7
推荐指数
3
解决办法
6005
查看次数

Spring Boot @JsonIgnore 在实体上,有时我希望一个属性作为 Json 返回

我有一个正在使用 Spring Boot 构建的 API。API 将返回配方。

我有一个@Entity,它包含我的食谱的所有属性,包括类别、成分和制作食谱所需的步骤等内容。

我有两个 API 端点,一个返回配方列表 (/recipes),另一个返回单个配方的详细信息 (/recipes/49)。

我的问题是,在列出食谱 (/recipes) 的端点中,我不想返回诸如成分和步骤之类的属性,但我确实想在提供有关单个食谱的详细信息的端点中返回它们 (/recipes/49 )。问题是使用 @JsonIgnore 总是从所有 JSON 响应中删除属性,这不是我需要的。

我试图做一些研究,但似乎无法找到解决方案,我能想到的唯一方法是始终循环遍历每个配方并填充某种仅具有必要属性的响应对象他们正在返回的端点,但这“感觉”不对。

有人能够确认您将如何执行此操作吗?

spring jackson spring-data-jpa spring-boot

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

Spring Boot无法加载类:com.microsoft.sqlserver.jdbc.SQLServerDriver

我已经创建了一个新的Spring Boot项目.我正在尝试设置DataSource以使用MSSQL.但是我似乎得到错误"无法加载类:com.microsoft.sqlserver.jdbc.SQLServerDriver"

我已将文件jdbcsql4.jar放在项目/lib/jdbcsq4.jar的文件夹中

在我的pom.xml文件中,我添加了以下内容:

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
        <scope>system</scope>
        <optional>true</optional>
        <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我有一个application.properties文件,我正在定义数据库凭据,如下所示:

secondary.datasource.url = jdbc:sqlserver://1.1.1.1:50109
secondary.datasource.username = sa
secondary.datasource.password = mypassword
secondary.datasource.driver-class-name =     com.microsoft.sqlserver.jdbc.SQLServerDriver
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我可能出错的地方吗?

java spring maven spring-boot

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

在Spring Boot应用程序中使用Rackspace时,Apache jclouds java.lang.NoSuchMethodError

我正在尝试将Apache Jclouds集成到我正在处理的Spring Boot应用程序中,以便我可以将文件上传到Rackspace Cloud Files(英国).

我创建了一个我正在创建Bean的类;

import com.google.common.io.ByteSource;
import com.google.common.io.Files;
import org.jclouds.ContextBuilder;
import org.jclouds.io.Payload;
import org.jclouds.io.Payloads;
import org.jclouds.openstack.swift.v1.features.ObjectApi;
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Class WebStorage
 *
 */
public class WebStorage {

    private final String region = "lon";
    private final String provider = "rackspace-cloudfiles-uk";

    private String username;
    private String apiKey;
    private String container;
    private String url;

    private CloudFilesApi cloudFilesApi;

    public WebStorage(String username, String apiKey, String container, String url) {
        this.username = username;
        this.apiKey = …
Run Code Online (Sandbox Code Playgroud)

java spring jclouds spring-boot

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

Centos 7,Apache日志zend_mm_heap记录已损坏,网站未返回任何响应

我在办公室中有一台服务器用作开发服务器。它使用Apache,PHP和MySQL运行Centos 7。

服务器上的某些Web应用程序随机停止返回响应,并且在检查Apache错误日志时,当未收到响应时,我会看到此错误。

zend_mm_heap损坏

我已经进行了一些研究,并且了解到这与Zends内存管理有关,但是我似乎无法找到解决问题的方法。

我已经检查了我的php.ini文件,并且看不到对APC的任何引用,所以不要相信这是引起问题的原因。

服务器运行正常,启动已经很随机了,我不认为我们已经更改了服务器上的任何内容以引起问题。

该错误出现在多个项目中,因此我相信它不是特定于项目的,而是与服务器/软件本身有关的。

如果我将以下内容添加到项目.htaccess文件中,则该Web应用程序似乎可以正常工作,并且不会生成任何错误。但是,我不认为将其添加到服务器上的每个项目中都是合适的解决方案,并且我肯定在某个地方存在问题,也许是坏RAM?

php_flag opcache.enable Off
Run Code Online (Sandbox Code Playgroud)

php apache

5
推荐指数
0
解决办法
713
查看次数

Rest API是否可以在资源内返回单个用户数据?

举例来说,假设我有一个API,用于处理将图书的详细信息传递回移动应用程序的情况。用户可以浏览书籍列表,并将书籍添加到他们的愿望清单。

我的问题是,在退回一本书或一本书集时,将特定于用户的信息包含在每本书资源中是一种好习惯吗?我的意思是,每本书都可以包含一个字段,该字段表示该书是否在用户的愿望清单中,或者将此清单单独返回并由移动应用程序来执行此检查。

移动应用程序开发人员希望拨打/ books并收到类似以下内容的响应;

{
  "books": [
    {
      "id":1,
      "name": "How to be good at everything",
      "price": 3.99,
      "in_wish_list": true
    },
    {
      "id":2,
      "name": "How to be good at nothing",
      "price": 6.50,
      "in_wish_list": false
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我认为我希望将这些数据分散到多个端点。

/ user / 29 /收藏

{
  "wishlist": [1,7,9,34,28]
}
Run Code Online (Sandbox Code Playgroud)

/图书

{
  "books": [
    {
      "id":1,
      "name": "How to be good at everything",
      "price": 3.99
    },
    {
      "id":2,
      "name": "How to be good at nothing",
      "price": 6.50
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这样,移动应用程序负责确定书籍是否在用户的愿望清单中。

我可以看到将用户数据嵌入到书本资源中的好处,但是感觉不对。

我想知道其他人如何处理这种情况吗?

rest api-design

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