在我的 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) 我正在尝试将数据插入到我已附上它的屏幕截图的 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) 我正在尝试将 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)