일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CentOS
- 패스트캠퍼스
- 스프링의 정석
- 남궁성과 끝까지 간다
- DB
- 스웨거
- JavaScript
- 프로그래머스
- @jsonproperty
- 카프카
- visualvm
- AWS
- JWT
- emqx
- MYSQL
- 개인프로젝트
- docker
- 스파르타코딩클럽
- 쇼트유알엘
- 생성자 주입
- Kafka
- 시큐리티
- 데이터베이스
- EC2
- Spring
- WEB SOCKET
- 웹개발
- Spring Security
- 항해99
- java
- Today
- Total
목록IT 강의 정리/윤재성의 스프링 입문 (11)
Nellie's Blog
04. 자바 프로젝트 만들기 원래 지금까지 하던대로 자바 프로젝트를 만들어 보자. ① 클래스가지고 객체를 먼저 생성하고, ② 해당 객체의 주소값을 참조변수에 넣어주고 , ③그 참조변수를 통해서 뭔가 작업을 하는 식으로 보통 개발을 한다. 그런데, 만약에 내가 만든 HelloWorldEn클래스를 HelloWorldKo클래스로 변경을 하고 싶다면 어떻게 해야 할까? 당연히, 객체를 만들었던 클래스명을 먼저 변경해주고, 객체 생성 코드 변경, 메서드에 매개변수로 넣어줄 데이터타입도 변경해야 한다. 자바프로젝트의 문제점. 밑줄 부분을 모두 수정 해야 한다. 지금까지는, 이렇게 무언가가 변경되었을때 수동으로 모두 수정을 해줘야 했다. 다루기에 매우 번거롭다는 불편함을 가지고 있고, 유지보수에도 어려움이 있었다. ..
26. 오라클 데이터베이스 설치 현재 오라클사이트에서 11g버전의 database가 제공되지 않기때문에 윤재성선생님의 구글드라이브https://drive.google.com/drive/folders/1f11i7pkl2pOFnWARgHevupQsN-ry8sQL에서 다운을 받았다. setup.exe를 눌러 설치를 진행한다. 관리비밀번호는 1234로 했다. 이 창이 뜨면 우측 하단 비밀번호 관리 클릭 - SYS/ SYSTEM/ SCOTT 에 비밀번호 1234로 설정 cmd창에서 아래와같이 설치된 것 확인 27. SQL Devleoper설치 오라클 데이터베이스를 GUI환경에서 관리할 수 있도록 제공되는 도구이다. 깔끔한 환경으로 편리하게 사용가능하다. 오라클에서 다운로드 - sqldeveloper.exe 더블클..
23. AOP 특정메소드를 호출할때, 그 메소드를 가로채가서 다른 메소드를 먼저 호출하거나 그 이후에 호출하게 만드는 것. 예를 들어, 특정 웹페이지 요청시 로그인 여부를 검사하게 하는것 등으로 활용한다. method1()메소드가 호출될때, AdvisorClass가 가지고 있는 beforeMethod를 호출해라.(method가 호출되기전에) 라는 뜻으로 아래와 같이 beans.xml에 작성해줄 수 있다. 24. execution 명시자 25. @AspectJ 어노테이션 사용하기 지금까지는 어드바이저 역할을 할 클래스를 만들었었다. xml에 설정해놓은 메소드를 찾아서 자동으로 호출을 했었다. 그런데 @AspectJ 를 활용하면 xml파일이 아닌 어드바이저역할을 할 클래스에 직접 세팅할 수 있다. 먼저 , ..
20. Component 빈클래스 자체에 등록하는것. 그동안은 xml 파일이나 자바파일에 빈을 등록한 후 사용을 했다. 그런데 @Component를 사용하면, xml파일이나 빈 컴피그파일(자바파일)에 빈을 등록하지 않아도 자동으로 등록이 된다. 빈 등록이라든지 빈에 관련된 여러가지 내용들을 xml이나 자바파일에 등록을 하게 되는데, xml을 이용하는 방식을 사용할때 Comoponent를 쓰게되면 아래와 같이 작성을 해야한다. "이 패키지들의 component를 다 읽어서 빈으로 등록해줘!" Bean Configuration 자바파일을 이용할때는 아래와 같이 작성해야 한다. 컴포넌트 스캔은 하나의 이름만 지정 가능하기 때문에, 여러이름을 지정하고 싶으면 xml파일이나 자바파일에 수동으로 등록해줘야 한다. ..
16. init, destroy 메서드 xml파일로 init, destroy메서드등록과 자바파일로 등록하는법 비교해보면 아래와 같다. 17. 주입 xml파일로 자동주입등록과 자바파일로 등록하는법 비교해보면 아래와 같다. 18. 어노테이션을 이용한 빈 설정 어차피 만들어질 빈클래스를 xml이나 자바파일에 설정하지말고, 해당 파일(TestBean1)에서 어노테이션으로 간편하게 설정해보자. 우선 아래와 같이 xml파일에 context 네임스페이스를 추가 해줘야 한다. 1) @Required 반드시 주입해야 할 프로퍼티가 있다면 @Required 를 붙여준다. 그러나 스프링 5.1 부터는 @Required를 붙여도 아무런 일이 일어나지 않는다. 반드시 주입해야 할 프로퍼티는 생성자를 통해 주입받는 것을 사용해야..
15. 빈 등록 지금까지는 xml파일에 빈을 등록했었다. 이제부터는 자바파일에 빈 등록을 배워보자. xml으로 빈을 정의하는것과 자바파일로 빈을 정의하는 것을 비교해보자. 자바 파일은 @Configuration 을 붙여주며 시작한다. 자바파일이 xml파일 역할을 하는것이라고 명시해 주는 것이다. 자바파일로 빈을 정의할때는 , 메소드 형태로 빈을 만들어주는데, 이때 메소드 이름이 빈의 id값이 된다. 여기서는 java1이 id값이 된다. main클래스에서 불러올때 java1을 호출해 주는 것이다. 메인클래스 자바파일 호출하는 괄호안에 BeanConfigClass.class를 적으면 BeanConfigClass.java 파일에 세팅해놓은 @Bean 을 찾아서 , 아 여기에서 빈을 정의했구나 ! 판단하고 이 ..
14. 자동 주입 지금까지 Bean을 정의할 때 주입할 객체는 생성자를 통한 주입이나 setter를 통한 주입을 사용했다. 스프링에서는 객체를 주입할 때 자동으로 주입될 수 있도록 설정할 수 있는데, 이름, 타입, 생성자를 통해 가능하며 이것을 auto wire라고 한다. 기본자료형(정수, 실수, 문자열)은 자동주입이 불가능하며 기존의 방식으로 주입해야 한다. 자동주입은 객체만 가능하다. 1) 이름을 통한 주입 xml파일에 id값을 지정해주면 , 변수에 바로 넣는게 아니고 setter메소드를 호출하여 주입해준다. 일반주입과 이름을 통한 자동주입을 비교해보자. 2) 타입을 통한 주입 타입을 통한 자동주입은 , 타입만 같으면 무조건 주입하기 때문에 id값은 생략 가능하다. 3) 생성자를 통한 주입 이렇게 x..
13. 컬렉션 주입 1) List 주입 String, Integer로 이루어진 List컬렉션을 주입해보자. 아래처럼 순으로 값 주기 이번에는 객체로 이루어진 List를 주입해보자. 객체 만들어서 주입 3줄 / 미리 만들어진 빈객체 주입 3줄 property - list - bean class / property - list - ref bean 순으로 작성! 2) Set 주입 set는 중복데이터를 저장하지 않는다. beans.xml에 같은 String, Integer데이터를 넣어도 중복값은 출력되지 않는다. scope를 프로토타입으로 설정해도, 주소가 다른 객체가 생성이 되는데 스프링은 객체의 주소가 달라도 id값이 같으면 중복으로 인지하여 중복값이 출력 되지 않도록 한다. 객체를 계속 생성하고 싶으면 6..
11. 생성자를 통한 주입 의존성 주입(Dependency Injection) - Bean객체를 생성할 때 Bean객체가 관리할 값이나 객체를 주입하는 것 - Bean객체 생성후 Bean객체가 가질 기본값을 자바코드로 설정하는 것이 아닌 Bean을 정의하는 xml코드에서 정의하는것 먼저 매개변수가 1개인 자바코드와 생성자주입을 비교해보자. 일반 자바코드에서는 TestBean.java에 int data1를 매개변수로 갖는 생성자를 1개 생성한 후, MainClass.java에서 TestBean t2 = new TestBean(100); 으로 생성자를 호출했다. 생성자를 통한 주입은 TestBean.java에 int data1를 매개변수로 갖는 생성자를 1개 생성한 후(동일), beans.xml에 bean정..
07. IoC 컨테이너 IoC(Inversion of Control, 제어 역전) 일반적으로 프로그래밍을 작성할 때 프로그램이 흘러가는 흐름이나 생성되는 객체에 대한 제어권을 개발자가 가지는 것과 달리 프레임워크가 가지는 것을 의미한다. 개발자가 직접 객체 생성에 관련된 코드를 작성하는 것이 아닌, 프레임워크가 사용하는 파일에 작성하면 이를 토대로 프레임워크가 객체를 생성하여 반환하고 코드가 동작하는 순서를 결정하게 된다. POJO Class(Plain Old Java Object) 자바 모델이나, 기능, 프레임워크 등에 따르지 않고 홀로 독립적이며 단순한 기능만을 가진 객체들을 의미한다. 자바에서는 이러한 객체들을 Bean이라고 부른다. POPO(PHP), POCO(닷넷 프레임워크), PODS(C++)..
04. 자바 프로젝트 만들기 원래 지금까지 하던대로 자바 프로젝트를 만들어 보자. 평소대로라면, ① 클래스가지고 객체를 먼저 생성하고, ② 해당 객체의 주소값을 참조변수에 넣어주고 , ③그 참조변수를 통해서 뭔가 작업을 하는 식으로 보통 개발을 한다. package kr.co.softcampus.beans; public class HelloWorldEn { public void sayHello() { System.out.println("Hi~~~"); } } package kr.co.softcampus.main; import kr.co.softcampus.beans.HelloWorldEn; import kr.co.softcampus.beans.HelloWorldKo; public class MainCla..