program/Java, Spring

1. 개요 - gradle 프로젝트를 생성한다. - build.gradle을 작성하여 의존성을 주입한다. 2. Gradle 프로젝트 생성 2.1. new / Spring Starter Project 선택 Spring Starter Project 2.2. 프로젝트 초기 설정 입력 프로젝트 초기 설정 입력 - Type을 Gradle, Java Version을 8로 선택 및 프로젝트 초기 설정 입력 후 Next를 선택한다. 2.3. 스프링 부트 프로젝트 설정 스프링 부트 프로젝트 설정 - Web / Spring Web을 선택하고, Spring Boot Version은 임의로 2.4.4를 선택한다. 스프링 부트 버전은 build.gradle에서 수정이 가능하다. 2.4. gradle 프로젝트 생성 완료 프로젝트..
SqlSession 사용 마이바티스에서는 SqlSession를 생성하기 위해 SqlSessionFactory를 사용한다. 세션을 한번 생성하면 매핑구문을 실행하거나 커밋 또는 롤백을 하기 위해 세션을 사용할수 있다. 마지막으로 더 이상 필요하지 않은 상태가 되면 세션을 닫는다. 마이바티스 스프링 연동모듈을 사용하면 SqlSessionFactory를 직접 사용할 필요가 없다. 왜냐하면, 스프링 트랜잭션 설정에 따라 자동으로 커밋 혹은 롤백을 수행하고 닫혀지는, 쓰레드에 안전한 SqlSession 개체가 스프링 빈에 주입될 수 있기 때문이다. SqlSessionTemplate SqlSessionTemplate은 마이바티스 스프링 연동모듈의 핵심이다. SqlSessionTemplate은 SqlSession을 ..
MyBatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크로 SQL을 별도의 파일로 분리해서 관리하게 해준다. 데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해 xml로 구조화한 Mapper설정파일을 통해 JDBC를 구현한 영속성 프레임 워크다. 기존에 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 xml설정을 통해 쉽게 구현할 수 있게 했다는 것이 특징이다. MyBatis의 특징 쉬운 접근성과 코드의 간결함 JDBC의 모든 기능을 Mybatis가 대부분 제공한다. 복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다. 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑..
Spring Boot로 프로젝트를 진행하면서 Maven과 Gradle 중 하나의 빌드도구를 선택해서 진행을 하게 되는데 도대체 Maven이 뭐고 Gradle이 뭘까? Maven의 정의 자바용 프로텍트 관리 도구, Apache Ant의 대안으로 등장 필요한 라이브러리를 pom.xml에 정의해두면 내가 사용할 라이브러리 뿐 아니라 해당 라이브러리에 필요한 다른 라이브러리들까지 자동으로 다운받아줌 Maven의 pom.xml 메이븐을 이용한 프로젝트 root에 존재하는 xml파일 프로젝트의 모든 설정, 의존성 등을 기록 즉, pom.xml에 사용하고자하는 라이브러리를 등록함 https://mvnrepository.com/ 사이트에서 메이븐 코드를 확인할 수 있음 Gradle의 정의 Groovy를 기반으로 한 빌..
머스테치(Mustache) 는 JSP와 같이 HTML을 만들어 주는 템플릿 엔진입니다. 또한 수많은 언어를 지원하는 가장 심플한 템플릿 엔진으로 java에서 이용할 때는 서버 템플릿 엔진, javascript에서 이용할 때는 클라이언트 템플릿 엔진으로 모두 사용 가능하다. (루비, 자바스크립트, 파이썬, PHP, 자바, 펄, Go, ASP 등 지원) Mustache 템플릿 파일을 호출하려면 반드시 컨트롤러를 통해 호출해야 한다. 머스태시의 파일 위치는 기본적으로 scr/main/resources/templates이다. 머스태시의 파일 확장자는 .mustache이다. (.html파일 확장자를 .mustache로 생성하면 된다) Template Engine? 템플릿 엔진은 "프로그램 로직" "프리젠테이션" ..
첫 프로젝트 내용을 보는데 많이 봤지만 정확한 개념은 헷갈리는 어노테이션들이 나왔다. 그 중에서 @ModelAttribute, @RequsetParam, @RequestBody 어노테이션 개념정리를 먼저 해보고자 한다. @RequestParam 이란? @RequestParam은 1개의 HTTP 요청 파라미터를 받기 위해서 사용한다. @RequestParam은 필수 여부가 true이기 때문에 기본적으로 반드시 해당 파라미터가 전송되어야 한다. 해당 파라미터가 전송되지 않으면 400 Error를 유발하게 된다. 그렇기 때문에 반드시 필요한 변수가 아니라면 required의 값을 false로 설정해둘 수 있으며 해당 Parameter를 사용하지 않고 요청을 보낼 경우에 default로 받을 값을 default..
의존성 주입할때 @Autowired라는 어노테이션을 대게 많이 사용한다. 의존성이란? "A가 B를 의존한다" A가 B를 의존한다.”는 표현은 어떤 의미일까? 추상적인 표현이지만, 토비의 스프링에서는 다음과 같이 정의한다. 의존대상B가 변하면, 그것이 A에 영향을 미친다. 즉, B의 기능이 추가 또는 변경되거나 형식이 바뀌면 그 영향이 A에 미친다. 다음의 햄버거 가게 요리사 예시를 봐보자. 햄버거 레시피가 변화하게 되었을 때, 변화된 레시피에 따라서 요리사는 햄버거 만드는 방법을 수정해야한다. 레시피의 변화가 요리사의 행위에 영향을 미쳤기 때문에, "요리사는 레시피에 의존한다"라고 말할 수 있다. 코드로 표현해보면 다음과 같다. class BurgerChef{ privaet HamBurgerRecipe ..
스프링 빈(Bean) 이란? "스프링 컨테이너가 생성해준 자바 객체" 스프링 빈은 쉽게 말해 스프링 컨테이너가 생성해준 자바 객체를 의마한다. 흔히 스프링부트에서는 @Component, @Controller, @Service 등의 어노테이션을 통해 특정 객체를 빈으로 등록해 사용한다. 이는 내부적으로, @Component 라는 어노테이션이 붙은 클래스들에 대해 (@Controller 와 @Service 도 실제로는 @Component 어노테이션을 가진다) 스프링 컨테이너가 이들을 빈으로 등록해주는 것이다. 스프링 컨테이너란? 컨테이너는 객체의 생성 및 관리를 담당하며 이외의 여러 다양한 기능을 제공한다. 스프링 또한 객체를 생성하고 객체간 의존관계를 관리하므로 컨테이너라고 말할 수 있으며, 이를 스프링 ..
자바에는 this와 this() 키워드가 있는데 이 키워드는 전혀 다른 키워드이다. 짧게 설명하자면 this는 인스턴스 자신을 가르키는 참조 변수이고 this()는 생성자를 뜻한다. this란? class car{ String color;// 인스턴스 변수 String gearType; int door; car(String color, String gearType, int door){ this.color = color; this.gearType = gearType; this.door = door; } } this는 위 코드처럼 생성자의 매개변수로 선언된 변수의 이름이 인스턴스 변수와 같을 때 인스턴스 변수와 지역변수를 구분하기 위해서 사용한다. Car() 생성자 안에서의 this.color는 인스턴스 변..
Java에서 생성자란? 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다. 따라서 인스턴스 변수의 초기화 작업에 사용되고, 인스턴스 생성 시에 실행되어야 할 작업을 위해서 사용된다. ... 무슨말인지 헷갈린다. 다른곳에서 찾아보니, 객체가 객체화 될 때 호출되는 특수 함수, 새 키워드를 사용할 때 자바 생성자의 목적은 새로 생성된 객체를 쓰기 전에 초기화하는 것이다. 생성자는 해당 클래스의 인스턴스(객체)를 초기화한다. 일반적으로 생성자는 초기화가 필요한 객체의 필드를 초기화한다. 객체가 처음 생성될때 클래스 내의 변수들의 값이 초기화되게 하는 것이다. 생성자를 프로그래머가 만들지 않는다면, 객체의 변수들은 기본 생성자를 통해 아무런 변화 없이 클래스에 적혀있는대로 만들어진다. 하지만, 객체를..
Yeni0325
'program/Java, Spring' 카테고리의 글 목록 (3 Page)