Một cách để bạn có thể tìm ra những thứ như thế này là tự mình xem. Đây là một ví dụ cho nhật thực, nhưng nó sẽ hoạt động tương tự cho các IDE khác:
Trước hết, hãy đảm bảo bạn có nguồn thư viện mùa xuân bạn đang sử dụng. Điều này là dễ nhất nếu bạn sử dụng maven, using the maven-eclipse-plugin hoặc sử dụng m2eclipse.
Sau đó, trong Eclipse, chọn Navigate -> Open Type...
. Nhập loại bạn đang tìm kiếm (một cái gì đó giống như RequestMa*
nên làm cho máy in lười biếng như bản thân mình). Nhập/OK. Bây giờ bấm chuột phải vào tên lớp trong tệp nguồn và chọn References -> Project
. Trong chế độ xem tìm kiếm, tất cả các sử dụng của lớp hoặc chú thích này sẽ xuất hiện.
Một trong số đó là DefaultAnnotationHandlerMapping.determineUrlsForHandlerMethods(Class, boolean), nơi đoạn mã này sẽ cho bạn biết rằng ngôn ngữ biểu hiện không được đánh giá:
ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() {
public void doWith(Method method) {
RequestMapping mapping = AnnotationUtils.findAnnotation(
method, RequestMapping.class);
if (mapping != null) {
String[] mappedPatterns = mapping.value();
if (mappedPatterns.length > 0) {
for (String mappedPattern : mappedPatterns) {
// this is where Expression Language would be parsed
// but it isn't, as you can see
if (!hasTypeLevelMapping && !mappedPattern.startsWith("/")) {
mappedPattern = "/" + mappedPattern;
}
addUrlsForPath(urls, mappedPattern);
}
}
else if (hasTypeLevelMapping) {
urls.add(null);
}
}
}
}, ReflectionUtils.USER_DECLARED_METHODS);
Hãy nhớ rằng, nó được gọi là mã nguồn mở. Không có điểm trong việc sử dụng Phần mềm nguồn mở nếu bạn không cố gắng hiểu những gì bạn đang sử dụng.
Nguồn
2010-09-21 07:24:06
để làm rõ, biểu thức trò chơi hoạt động tốt với chú thích @value để đặt giá trị "RESOURCE_FOLDER", nhưng nó sẽ không hoạt động trong @ Chú thích RequestMapping – chrismarx