2013-05-22 2 views
4

저는 현재 뮌스터 대학에서 학사 학위 논문을 준비 중입니다. 스프링 구성에서 일반적인 문제를 자동으로 식별 할 계획입니다. 시장에 버그 나 문제를 찾기 위해 정적 코드 분석을 수행하는 많은 도구가 있습니다. 이것들은 런타임에만 나타나는 문제를 분명히 감지하지 못합니다. 스프링 애플리케이션의 ApplicationContext를 분석하고 리플렉션과 빈 그래프 분석을 사용하여 잘못된 구성을 찾으려고합니다.Spring 애플리케이션을 개발할 때 가장 흔히 저지르는 실수는 무엇입니까?

예제 : 간단한 예제는 누군가가 클래스 또는 메소드 트랜잭션을 주석을 사용하여 보안하려는 경우입니다. 그는 일반적으로 클래스 나 메소드 위에 @ Transactional-tag를 추가 할 것이지만, 애플리케이션이 올바르게 설정되어 있지 않고 주석을 준수하는 ApplicationContext에 등록 된 트랜잭션 관리자가 없다면 태그는 무시 될 것이다. 이러한 유형의 문제점을 지금까지는 발견하기 어려운 이유 인 오류 메시지는 발생하지 않습니다.

질문 : 스프링 메커니즘을 사용하는 잘못된 구성으로 인해 발생하는 가장 일반적인 실수 또는 구조적 결함은 동적 분석으로 감지 할 수 있습니까? 유사한 프로젝트를 수행하는 프로젝트가 있습니까?

P.S. 나의 논문에서 나는 이런 종류의 문제를 발견하고 이후에 소스를 공개 할 수있는 프로토 타입을 개발할 것이다. :)

+3

SO, imo의 질문과 관련성이없는 멋진 프로젝트. 'component-scan'-ing은 필자가 놓치거나 잘못 수행 한 것으로서 마음에 떠오른다. 그러나 진정한 기대 패키지가 무엇인지 말하기는 어렵다. –

+0

조언 해 주셔서 감사합니다. 이 질문에 더 적합한 다른 플랫폼을 알고 계십니까? –

+0

아마도 [codereview] (http://codereview.stackexchange.com/) –

답변

0

내가 쓴 스프링 관련 질문에서 예제 (올바른 @Transaction이 맞지 않음)는 가장 많이 제기되는 문제 중 하나입니다. 그러나 작은 형식에 설정을 몇과 함께 :

@Service 
public class SomeService() { 

    @Transaction 
    public void save(Some thing) { 
     ... 
    } 

    public void doSomeThing(Some thing) { 
    ... 
    this.save(thing); 
    } 
} 

그리고 그들은 doSomeThing를 사용할 때 @Transactional 주석의 계정에 촬영되지 않는 이유 궁금 : 종종 문제는 누군가가이 tryes 것입니다.

문제는이 것이이 실제 Apect가 아닌이 실제 AspectJ에서만 작동한다는 것입니다.

+0

답장을 보내 주셔서 감사합니다. 설명 된 컨 스텔 레이션의 문제점은 ApplicationContext의 동적 분석 아래 정적 코드 분석이 추가적으로 필요하다는 것입니다. 아니면 다른 접근법이 있습니까? –

+0

@ a.ha 예 : 메소드의 호출을 감지하려면 정적 코드 분석이 필요합니다. – Ralph