본문 바로가기

전체 글

(8)
인프런_토비의 스프링부트_정리본_20230606 스프링 부트란? 스프링을 기반으로 실무 환경에서 사용 가능한 수준의 독립실행형 애플리케이션을 복잡한 고민없이 빠르게 작성할 수 있게 도와주는 여러가지 도구의 모음. 1. 스프링 != 스프링 부트 2. 독립실행형(stand-alone) 어플리케이션 Tomcat, Jetty, Undertow 같은 웹어플리케이션서버(WAS)를 자체 내장하고 있다. (톰캣-default) 다양한 어플리케이션 구성에 따라서 다양한 스타터(“starter”) 모듈들을 선택할 수 있다. (주로 web-starter) 스프링 및 외부 라이브러리의 설정을 자동으로 해준다. (강한 주장을 가진(opinionated) 도구) *** 스프링 프레임워크의 설계 철학 극단적인 유연함 추구 다양한 관점을 수용 NOT opinionated 수많은 ..
스프링부트학습_20230604_2 * 기존 작성했던 코드를 스프링부트의 자동구성과 테스트로 전환 app 을 실행하게 되면 CONDITIONS EVALUATION REPORT 를 확인할수 있다.(자동 구성 후보들) 코어 - web - jdbc 를 추가했을때 어떠한 자동구성정보들이 추가되는지 확인해보았다. 마지막 정리 에서 스크린샷 찍어서 정리하면 될듯.
20230604_스프링부트학습 * DataSource @Bean @ConditionalOnSingleCandidate(DataSource.class) @ConditionalOnMissingBean JdbcTemplate jdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean @ConditionalOnSingleCandidate(DataSource.class) @ConditionalOnMissingBean JdbcTransactionManager jdbcTransactionManager(DataSource dataSource) { return new JdbcTransactionManager(dataSource); } jdbcTemplate 을 ..
20230528_스프링부트학습 org.springframework.boot.autoconfigure 안에는 많은 설정이 있다. 약114가지의 자동구성 설정 tomcat, jetty, undertow 라는 서블릿컨테이너가 있음. @Conditional 사용예시 @MyAutoConfiguration @Conditional(TomcatWebServerConfig.TomcatContion.class) public class TomcatWebServerConfig { @Bean("tomcatWebServerFactory") public ServletWebServerFactory servletWebServerFactory() { return new TomcatServletWebServerFactory(); } static public class..
20230526_스프링부트 학습 * 오토 컨피그레이션 메타 에노테이션을 상속의 개념과 헷갈리면 안됨. @Component - @Service -@Controller -@Controller------------- @RestController ----합성 에노테이션 - @ ResponseBody ---- @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Configuration @ComponentScan public @interface MySpringBootAnnotation { } @MySpringBootAnnotation public class HellobootApplication { public static void main(String[] args) { SpringApp..
20230521_스프링부트 학습 DI (의존성 주입) HelloController - SimpleHelloService - ComplexHelloService HelloService 라는 인터페이스를 이용해 컨트롤러가 영향받지 않도록 할수 잇음. 하지만 Assembler를 이용해 둘간의 관계를 만들어주어야함. -> new 키워드를 사용하는것 대신함. 어셈블러가 곧 스프링컨테이너 역할. *DispatcherServlet public class HellobootApplication { public static void main(String[] args) { GenericWebApplicationContext applicationContext = new GenericWebApplicationContext(); applicationContex..
스프링부트_20230520 HTTP 요청과 응답헤더 바디 요청 - 메서드, path, http version 응답헤더 바디 http version , 상태코드, 상태 text ***독립실행이 가능한 서블릿컨테이너를 만들어봄 우선 스프링부트에서 서블릿 컨테이너를 만드는 간단한 작업 부터 시작 package tobyspring.helloboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HellobootApplication { public static void main(String[] args) { ..
인프런_스프링부트학습_20230514 스프링부트 != 스프링 컨터이너리스 = 서버리스 서버에 대한 설치관리에 대해 개발자들이 신경쓰지 않고 개발이 가능하도록,, 컨터이너란? ioc컨터이너 스프링? 웹클라이언트- 웹컴포넌트(동적인 컨텐츠 처리) 웹요청이 들어왔을때 어떤 서블릿이 처리할지 결정하는 것 (ex)톰캣 웹-> 서블릿컨테이너-> 스프링컨테이너ㅇㅇ 서블릿컨테이너에 대한 관리, 공부 등 을 개발자가 관여하지 않는 방식-> 스프링부트 standalone application *Opinionated (독선적인 자기주장이 강한) Opinonated 내가 다 정해줄게 일단 개발만 해. 스프링 프레임워크의 설계 철학 극단적인 유연함 추구 다양한 관점을 수용 NOT opinionated 수많은 선택지를 다 포용 하지만... 수많은 선택지를 개발자들이..