2016-08-27 2 views
1

많은 가이드를 통해 스프링 보안 및 최대 절전 모드를 사용하여 첫 번째 로그인 페이지를 만들었습니다.스프링 MVC, 최대 절전 모드 및 스프링 보안에 대해 설명하십시오.

내가 직면 한 문제는 주로 가이드가 매우 철저한 설명이 없었기 때문에 내가 너희들을 통해 대답 할 수 있기를 바랬다.

질문 1 : 예를 들어 UserDao와 같은 인터페이스 클래스를 만드는 이유는 무엇입니까? 이 인터페이스의 목적은 일종의 데이터베이스에 액세스하는 것입니다. 그러나 내 UserDao에는 다음 내용 만 포함되어 있습니다.

public interface UserDao { 

User findByUserName(String userName); 

boolean insertUser(User user); 

} 

대신 클래스를 만들 수 있습니까?

질문 2 :

@Override 
protected void configure(AuthenticationManagerBuilder auth) throws Exception { 
    auth.userDetailsService(userDetailsService); 
} 

질문 3 : 어떻게이 클래스는

@Service 
@Transactional 
public class UserDetailsServiceImpl implements UserDetailsService { 

@Autowired 
private UserDao userDao; 

@Override 
public UserDetails loadUserByUsername(String userName) throws 
UsernameNotFoundException { 
code... 
} 
    } 

라고됩니까과 내가 실행할 때 실제로 무대 뒤에서 어떻게됩니까

?

나는 대부분의 문서를 읽었지만 여전히 이해할 수 없습니다.

미리 감사드립니다. DAO 인터페이스없이 Q1

프로그래밍 용

+0

와 오라클이나 MySQL의 지원을 연결할 수 있습니다 당신은 문서를 공부 했습니까? 포괄적 인 답변이 너무 길어서 설명서를 복제하기 만하면 귀하의 질문은이 사이트에서 너무 광범위합니다. –

+0

예, 명시된 바와 같이 문서를 읽었으며 작성된 내용을 이해하지 못했습니다. 또한 처음 두 질문은 그다지 광범위하지 않습니다. 나는 진짜로 사본을 요구하지 않고있다, 내가 바라는 것은 다른 관점의 설명이다. – JustinCredible

답변

0

않음.

  • 새로운 요구 사항에 따라 구성 요소를 추가해야하는 거대한 시스템의 프로그래머라고 가정 해 보겠습니다.
  • 처음부터 시스템이 MySQL과 함께 작동하도록 구현되었습니다.
  • 프로젝트 관리자가 새로운 요구 사항으로 인해 Oracle에 대한 지원을 구현할 것을 요청했습니다. (필요할 때마다 MySQL과 Oracle간에 DB 지원을 전환해야합니다.)
  • MySQL 쿼리와 Oracle 쿼리가 다릅니다.
  • 시스템이 최대 절전 모드와 같은 ORM 프레임 워크로 구현되지 않았습니다.
  • 특히, DAO 인터페이스가 없습니다. 모두 DB와 통신하는 구체적인 클래스입니다.
  • 이제 Oracle과 관련된 쿼리를 포함한 메소드로 Java 클래스를 구현할 것입니다. 당신은 문제가있는
  • ,
  • 시스템은
  • 그것은 서비스 계층 코드 또는
  • 알고 (당신은 서비스 계층을 변경할 수 없습니다 수없는 문서화를 검사없이 복잡한 비즈니스 로직
  • 포함되어 거대 코드).
  • 어떤 클래스/메소드를 어떤 이름으로 구현해야합니까?
  • 메소드의 입력 매개 변수는 무엇이되어야합니다.
  • 출력 할 내용.
  • 시스템 복잡성에 따라 수개월이 걸릴 것입니다.

그러나 DAO 인터페이스와 함께 (시간의 감소는 소프트웨어 프로젝트의 핵심 포인트입니다) 당신은 당신은 단지 DAO 인터페이스를 구현

  • 때문에 오라클 특정 쿼리에 대해 생각하기 만하면

    • 자동으로 DAO 인터페이스가 사용자를 계속 추적합니다.
    • 정확한 방법 이름을 사용하십시오.
    • 올바른 입력 매개 변수를 사용하려면
    • 올바른 반환 변수를 사용하려면
    • 트랙에서 벗어나면 컴파일이 실패합니다.
    • 그리고 당신은 쉽게 빈 주입
  • 관련 문제