小编noi*_*ale的帖子

为什么 @ConditionalOnMissingBean 在它应该检查的 bean 之前被调用?

在我的 Spring Boot 应用程序中,我希望仅在未启用模块时才创建 bean。

在 CoreConfig 中,我定义了两个 bean(geocoder 和 tripDistanceCalculator),并通过@ConditionalOnMissingBean引用这些 bean 应该初始化的接口进行注释。

@Configuration
class CoreConfig {

    private val logger = loggerFor<CoreConfig>()

    @Bean
    @ConditionalOnMissingBean(Geocoder::class)
    fun geocoder(): Geocoder {
        logger.warn("no Geocoder bean instance has been provided. Instantiating default.")

        return object : Geocoder {
            override fun getGeocode(address: String) = Coordinates.Unavailable
        }
    }

    @Bean
    @ConditionalOnMissingBean(TravelDistanceCalculator::class)
    fun travelDistanceCalculator(): TravelDistanceCalculator {
        logger.warn("no TravelDistanceCalculator bean instance has been provided. Instantiating default.")

        return object : TravelDistanceCalculator {
            override fun getTravelDistanceInKm(origin: Coordinates, destination: Coordinates) = Double.NaN …
Run Code Online (Sandbox Code Playgroud)

spring kotlin spring-boot

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

为什么 Hibernate 会抛出“未指定标识符”?

我正在尝试将数据插入到我已附上它的屏幕截图的 Oracle 数据库中。在包含所有列和表的模型包中创建了一个实体类。附加的数据库详细信息中有一个 id 列是自动增加的。主要问题是使用 id 列的自动递增数据@GeneratedValue(strategy = GenerationType.IDENTITY)它没有给我指定此实体的身份,下面附上错误的详细信息。因此,为此创建了该实体类的对象并使用 save 方法我试图保存相同但由于该标识符的错误,它没有被保存。

这是我的实体类,其中包含表和列

package com.sid.demo.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
//import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.springframework.data.annotation.Id;

@Table(name="user_registration")  //this is a table present in my oracle database
@Entity
public class hindalco_model 
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) //this is where problem exists
    @Column(name="user_id",updatable=false,nullable=false)
    private Long user_id;  //this is column a present in oracle database which is auto incremented

    @Column(name="user_name")
    private String user_name;

    @Column(name="email")
    private String email;

    @Column(name="password")
    private …
Run Code Online (Sandbox Code Playgroud)

java hibernate spring-data-jpa spring-boot

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

为什么 Spring Boot 会因为 URL 未规范化而拒绝 GET 请求?

我正在尝试将 Spring 应用程序迁移到 Spring Boot。在 tomcat 服务器上运行应用程序时,出现以下错误:

由于 URL 未规范化,请求被拒绝。

我尝试在我的入口点类中添加以下 bean 来解决错误。

    @Bean
    public InternalResourceViewResolver jspViewResolver() {
        InternalResourceViewResolver bean = new InternalResourceViewResolver();
        bean.setPrefix("/WEB-INF/ui/");
        bean.setSuffix(".jsp");
        return bean;
    }

    @Bean
    public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
        StrictHttpFirewall firewall = new StrictHttpFirewall();
        firewall.setAllowUrlEncodedSlash(true);    
        return firewall;
    }

    @Bean
    public StrictHttpFirewall httpFirewall() {
        StrictHttpFirewall firewall = new StrictHttpFirewall();
        firewall.setAllowSemicolon(true);
        return firewall;
    }

    @Bean
    public HttpFirewall defaultHttpFirewall() {
        return new DefaultHttpFirewall();
    }

    public void configure(WebSecurity web) throws Exception {
        web.httpFirewall(allowUrlEncodedSlashHttpFirewall());
    }
Run Code Online (Sandbox Code Playgroud)

错误日志:

org.springframework.security.web.firewall.RequestRejectedException: The request was rejected …
Run Code Online (Sandbox Code Playgroud)

java authentication spring-boot

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