Java/Spring

Spring #1

DGeon 2023. 3. 16. 09:55
  • spring framework(spring legacy project)
    • STS개발도구
  • TDD(테스트 주도 개발)
    • 개발방법
    • 테스트케이스 작성
  • 객체 지향 프로그래밍 좋은 결과를 기대 할 때
    • 결합도 낮춤
      • DB나 다른곳에 넘기는 것
      • 게시글이 멤버의 ID를 가지고 있지만 DB가 아니면 상관 없는 상태가 되기때문에 DB에 대해 기본키를 주면서 결합도를 낮춘다
    • 응집도 높임
  • 스프링의 특징과 의존성 주입
    • 의존성 주입
      • 제어의 역전(Inversion Of Control)
        • Dependency Lookup(의존성 탐색)
        • Dependency Injection(의존성 주입)
      • 객체를 생성하는 방법
        • Board board = new Board();(결합도가 높음)
        • 다형성으로 생성(추상화 패턴)
          • BoardService service = new BoardServiceImpl();(결합도가 낮아짐)
        • 디자인 패턴(생성 패턴)
          • 싱글턴
            • Test test = Test.getInstance();
          • 팩토리 패턴
          • Class.forName("org.mariadb.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mariadb://np.ovmkas.co.kr:3306/sample_db", "SAMPLE", "1234");
          • 빌더 패턴
            • 느낌이 빌더랑 비슷하지만
            • 빌더 패턴
            • public static BoardBuilder builder(){ return new BoardBuilder(); } /** * 빌더 패턴 * @author SsoYoung * */ public static class BoardBuilder{ private Long bno; private String title; private String content; public BoardBuilder bno(Long bno){ this.bno = bno; return this; } public BoardBuilder title(String title){ this.title = title; return this; } public BoardBuilder content(String content){ this.content = content; return this; } public Board build() { return new Board(bno, title, content); } } public static void main(String[] args) { Board board = Board.builder().bno(1L).title("aaa").content("abcd").build(); System.out.println(board); }
          • 프로토타입
  • java Framework
  • ejb, struts, spring
  • @Autowired 인스턴스 생성
  • @contextConfiguration
  • @Component
  • @Controller
  • @Test
  • assertNotNull
  • 로그레벨
    • FATAL
    • ERROR
    • WARN
    • INFO
    • DEBUG
    • TRACE

p-