본문 바로가기
[LANG]/- Java

[Spring] Annotaion 어노테이션?

by Hapco 2022. 6. 5.
728x90
반응형

Annotaion 이란?

Annotation 이란 클래스와 메소드에 추가하여 다양한 기능을 부여하는 역활 특별한 의미를 부여하거나 기능을 부여하는 등 다양한 역활을 수행할수 있게된다

--> 코드량이 감소하고 유지보수가 쉬우며 생산성이 증가된다

Annotaion

@Component

생성한 Class를 Spirng Bean으로 등록할 때 사용하는 Annotaion

Spring은 해당 Annotation을 보고 Spring Beans 등록합니다.

@Controller

해당 Class가 Controller의 역활을 한다고 명시하기 위해 사용하는 Annotation

 

@Component(value="myman")
public class Man {
    public Man() {
        System.out.println("hi");
    }
}

@ComponentScan

@Component @Service @Repository @ Controller @ Configuration 중 1개라도 등록된 클래스를 찾으면 Context 에 beans로 등록한다

 
@Controller
public class HomeController {
	@RequestMapping("/")
	public String home() {
		return "home";
	}
 

@Bean

개발자가 제어가 불가능한 외부 라이브러리와 같은 것들을 Beans로 만들때 사용한다

@RequestHeader

Request의 header값을 가져올 수 있으며 , 해당 Annotation을 쓴 메소드의 파라미터에 사용한다,

@RequestMapping

@RequsetMappting(value="")와 같은 형태로 작성하며 value값이 일치하면 해당 클래스나 메소드가 사용한다(구버전)

@Controller                   // 이 Class는 Controller 역할을 합니다
@RequestMapping("/user")      // 이 Class는 /user로 들어오는 요청을 모두 처리합니다.
public class UserController {
    @RequestMapping(method = RequestMethod.GET)
    public String getUser(Model model) {
        //  GET method, /user 요청을 처리
    }
    @RequestMapping(method = RequestMethod.POST)
    public String addUser(Model model) {
        //  POST method, /user 요청을 처리
    }
    @RequestMapping(value = "/info", method = RequestMethod.GET)
    public String addUser(Model model) {
        //  GET method, /user/info 요청을 처리
    }
}

@GETMapping @POSTMappting

@GetMapping("/join")
	public String join() {
		//return "WEB-INF/views/member/join.jsp";//뷰리졸버 적용전
		return "member/join"; //뷰리졸버 적용후 
	}
	@PostMapping("/join")
	public String join(@ModelAttribute MemberDto memberDto) {
		//DB등록 코드
		memberDao.join(memberDto);
		//등록을 마치고 JSP를 연결(forword,포워드)하면 새로고침에 속수무책으로 당한다.
		//return "member/join_success";
		
		//새로고침을 대비해서 이 기능이 다시 실행되지 않도록 다른 기능으로 강제이동(rediect)
		//=redirect:로 시작하는 주소를 반환
		return "redirect:/"; //root페이지로 리다이렉트(뷰리졸버 무시)
	}

@RequestParam

URL에 전달되는 파라미터를 메소드의 인자와 매칭시켜 , 파라미터를 받아 처리할수 있는 Annotation

@Controller                   // 이 Class는 Controller 역할을 합니다
@RequestMapping("/user")      // 이 Class는 /user로 들어오는 요청을 모두 처리합니다.
public class UserController {
    @RequestMapping(method = RequestMethod.GET)
    public String getUser(@RequestParam String nickname, @RequestParam(name="old") String age {
        // GET method, /user 요청을 처리
        // https://naver.com?nickname=dog&old=10
        String sub = nickname + "_" + age;
        ...
    }
}

@ModelAttribute

클라이언트가 전송하는 파라미터 setter함수를 통해 1:1로 객체에 데이터를 연결

@Autowired

Bean객체를 주입받기 위한 방법

//내가 일하려면 MemberDao가 필요한데 MemerDao좀 주겟니?..	
@Autowired
	private MemberDao memberDao;

LomBok

@Setter

Setter Method 생성

@getter

Getter Method 생성

@AllArgsConstrucktor

모든 필드 값을 파라미터로 받는 생성자

@NoArgsConstructor

기본 생성자를 자동으로 추가

@ToString

toString 메소드를 생성

@Data

Setter + Getter + toString / 생성자는 안만들면 자바가 기본으로 하나 만들어줌..

 

참조 :http://melonicedlatte.com/2021/07/18/182600.html

댓글