構成クラスを使用してSpringブートアプリケーションを作成しました。スプリングライブラリを使用するのは通常のRestAPIです。その内部では、自分のLoggerクラスを使用してすべてのアクションを記録します。スプリングブートが開始されません - 豆の間に循環依存があります
また、アプリケーションクラスには、主な機能であるapplication.propertiesが含まれています。 xmlにBeanはありません.Configurationクラス内のものだけです。ここで
はその構成です:
@SpringBootConfiguration
public class ApplicationConfiguration {
@Value("${hibernate.dialect}")
private String dialect;
@Value("${hibernate.show_sql}")
private String showSql;
@Value("${hibernate.mappingResources}")
private String[] mappingResources;
@Value("${jdbc.driverClassName}")
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Autowired
private DataSource dataSource;
@Autowired
private LocalSessionFactoryBean localSessionFactoryBean;
@Bean
public LocalSessionFactoryBean localSessionFactoryBean() {
LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
Properties hibernateProperties = new Properties();
hibernateProperties.setProperty("hibernate.dialect", dialect);
hibernateProperties.setProperty("hibernate.show_sql", showSql);
sessionFactoryBean.setHibernateProperties(hibernateProperties);
sessionFactoryBean.setMappingResources(mappingResources);
return sessionFactoryBean;
}
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
はまた、私はロガークラスを作成しました:
@Service
public class LinksLogger {
private static final Logger logger = Logger.getLogger("MyLogs");
// methods here...
}
ここで私は私のロガーを使用する方法:
@RestController
@RequestMapping("/api/v1")
public class HelloController {
@Autowired
private LinksLogger logger;
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public Map<String, String> hello() {
Map<String, String> data = new HashMap<>();
data.put("data", "Hello#_#World");
logger.log("Hello#_#World");
return data;
}
}
は右、オーケーのように見えますか?
There is a circular dependency between 2 beans in the application context:
- helloController (field private com.defaultxyz.linksapi.util.LinksLogger com.defaultxyz.linksapi.controller.HelloController.logger)
- applicationConfiguration (field private org.springframework.orm.hibernate3.LocalSessionFactoryBean com.defaultxyz.linksapi.util.ApplicationConfiguration.localSessionFactoryBean)
- localSessionFactoryBean
はなぜ、この例外が表示されます:私は私のコードをコンパイルするとき しかし、私は例外を得ましたか。私がコードで間違ったことは?
感謝の
!それは動作し、私はその練習を覚えています! :) – DefaultXYZ