2010-03-26 34 views
6

Tôi đang cố gắng đặt org.springframework.beans.factory.config.PropertyPlaceholderConfigurer bean mùa xuân, tôi có jdbc.properties trong src/main/config .. khi tôi đặt tệp này trong src/main/resources và đặt classpath: vào giá trị mà ứng dụng của tôi triển khai thành công.Tham chiếu tệp qua đường dẫn lớp trong ngữ cảnh mùa xuân

này hoạt động khi jdbc.properties tọa lạc tại src/main/resources

<property name="location" value="classpath:jdbc.properties" /> 

Tuy nhiên tôi đang yêu cầu đặt bất kỳ cấu hình bên trong src/main/config, làm cách nào chỉ suối về phía vị trí này một cách đúng đắn?

Trả lời

11

Đây là sự cố classpath chứ không phải vấn đề Spring. Thêm src/main/config vào classpath của bạn và nó sẽ hoạt động. Trong Eclipse, điều này có nghĩa là thêm nó vào dự án Build Path-> Source.

+2

+1 cho hai lý do: Hoàn toàn là một vấn đề classpath. Ngoài ra, đề cập đến CÁCH để làm điều đó trong một IDE. – aperkins

+0

Tôi đã thêm '' vào .classpath của tôi và nó vẫn không hoạt động –

+0

Bạn đã khởi động lại Eclipse sau khi thực hiện điều đó chưa ? Đó là cách nó được thực hiện, mặc dù không bao gồm cả phần =. – stevedbrown

3

Câu trả lời đúng để này được đưa ra bởi @matt b,

"Những gì tôi đang đề cập đến là một thực tế rằng khi bạn đóng gói các ứng dụng, các tập tin cấu hình không được đóng gói trong một thư mục tên src/main/config trong tập tin đóng gói (jar/war/etc.) Do đó câu trả lời của bạn chỉ hoạt động khi bạn chạy ứng dụng trong mã nguồn hoặc khi src/main/config nằm trong classpath (mà nó không phải là theo mặc định). tiền tố rect là sử dụng classpath: hoặc một vị trí khác. "

Trong câu hỏi này:

Trying to setup externalizing properties in spring

+1

Điều đó trông giống như một phiên bản khác của cùng một câu hỏi – stevedbrown

1

Nếu nó là một dự án maven, bạn có thể thêm

<resources>    
     <resource> 
      <directory>src/main/config</directory> 
      <filtering>false</filtering> 
     </resource> 
<resources> 

cho bạn <build> trong pom.xml

+1

Thử đăng câu trả lời cho các câu hỏi mới. Câu hỏi này được hỏi vào năm 2010 và đã có câu trả lời được chấp nhận –

Các vấn đề liên quan