私は次の状況にあります
-ファイルからホスト、ポート、データベースを読み取るMongoServiceクラスがあります
xml構成
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:///storage/local.properties</value>
</list>
</property>
</bean>
</beans>
local.propertiesは次のように なります
### === MongoDB interaction === ###
host="127.0.0.1"
port=27017
database=contract
およびMongoServiceクラスとして
@Service
public class MongoService {
private final Mongo mongo;
private final String database;
private static final Logger LOGGER = LoggerFactory.getLogger(MongoService.class);
public MongoService(@Nonnull final @Value("#{ systemProperties['host']}") String host, @Nonnull final @Value("#{ systemProperties['port']}") int port, @Nonnull final @Value("#{ systemProperties['database']}") String db) throws UnknownHostException {
LOGGER.info("host=" + host + ", port=" + port + ", database=" + db);
mongo = new Mongo(host, port);
database = db;
}
}
Beanが正常であることをテストしたい場合は、
MongoServiceTest.javaで次のようにします。
public class MongoServiceTest {
@Autowired
private MongoService mongoService;
}
それはそれを言って文句を言うcan not identify bean for MongoService
。
次に、上記のxmlに以下を追加します
<bean id="mongoService" class="com.business.persist.MongoService"></bean>
それからそれは言って文句を言う"No Matching Constructor found"
私がやりたいこと
a。)MongoServiceは、@Autowired
から構成パラメータを読み取る必要があります。<value>file:///storage/local.properties</value>
質問
a。)コンストラクターの値へのアクセスは正しいですか? (file name is local.properties and I am using @Value("#{ systemProperties['host']}") syntax)
@Autowired private MongoService mongoService
b。)正しくロードされ、local.propertiesファイルから値を読み取る ように機能させる必要があるのは何ですか。
PS私はSpringを初めて使用しますが、これを機能させる方法がよくわかりません。
よろしくお願いします