SpringBoot: SpringBoot 개발에서 자주 사용하는 메모 간략화

SpringBoot: SpringBoot 개발에서 자주 사용하는 메모 간략화
1. 메모 목록
  • @SpringBootApplication: @ComponentScan, @Configuration 및 @EnableAutoConfiguration 주석이 포함되어 있습니다.A - @ComponentScan은 Spring Boot을 Configuration 클래스로 스캔하여 프로그램 컨텍스트에 추가합니다.B - @Configuration은spring의 XML 프로필과 같습니다.Java 코드를 사용하여 유형 보안을 확인할 수 있습니다.C - @EnableAutoConfiguration 자동 구성
  • @ComponentScan 구성 요소 스캔을 통해 Bean을 자동으로 발견하고 조립할 수 있습니다.
  • @Component는 CommandLineRunner와 함께 사용할 수 있으며 프로그램 시작 후 몇 가지 기초 작업을 수행할 수 있습니다.
  • @RestController 주석은 @Controller와 @ResponseBody의 집합으로 컨트롤러 bean임을 의미하며 함수의 반환값을 HTTP 응답체에 직접 채우는 REST 스타일의 컨트롤러입니다.
  • @Autowired 자동 가져오기
  • @PathVariable에서 매개변수를 가져옵니다.
  • @JsonBackReference는 외부 체인 문제를 해결합니다.
  • @Repository Rest Resourcepublic는spring-boot-starter-data-rest와 함께 사용합니다.

  • 주해
    2.1 @SpringBootApplication
    역할:spring boot에서 프로그램에 필요한 설정을 자동으로 하도록 합니다. 이 설정은 @Configuration, @Enable AutoConfiguration, @ComponentScan 세 가지 설정과 같습니다.
    import org.springframework.boot.SpringApplication; 
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication 
    //     @Configuration @EnableAutoConfiguration @ComponentScan 
    public class Application { 
    	public static void main(String[] args) { 
    		SpringApplication.run(Application.class, args); 
    	} 
    }
    

    2.2 @ResponseBody
    역할: 이 방법의 반환 결과는 HTTP response body에 직접 기록되며 일반적으로 비동기적으로 데이터를 가져올 때 사용되며 RESTful을 구축하는api에 사용됩니다.@RequestMapping을 사용하면 반환 값은 일반적으로 점프 경로로 해석되며 @ResponseBody를 더하면 반환 결과는 점프 경로로 해석되지 않고 HTTP의responseBody에 직접 기록됩니다.예를 들어 json 데이터를 비동기적으로 가져오고 @responsebody를 더하면 json 데이터를 직접 되돌려줍니다.일반적으로 이 메모는 @RequestMapping과 함께 사용됩니다.코드 예:
    @RequestMapping(“/test”) 
    @ResponseBody 
    public String test(){ 
    	return”ok”; 
    }
    
    @RequestMapping(“/test”) 
    public @ResponseBody String test(){ 
    	return”ok”; 
    }
    

    2.3 @Controller
    역할: 컨트롤러 클래스를 정의하는 데 사용되며,spring 프로젝트에서 컨트롤러가 사용자가 보낸 URL 요청을 대응하는 서비스 인터페이스 (서비스 층) 로 전송합니다. 일반적으로 이 주석은 클래스에 있으며, 일반적인 방법은 주석@RequestMapping에 협조해야 합니다.코드 예:
    @Controller 
    @RequestMapping(“/demo”) 
    publicclass DemoController { 
    
    	@Autowired 
    	private DemoInfoService demoInfoService;
    
    	@RequestMapping("/hello")
    	public String hello(Map map){
    		System.out.println("DemoController.hello()");
    		
    		map.put("hello","from TemplateController.helloHtml");
       
    		//   hello.html  hello.ftl        .
    		return "/hello";
    	}
    }
    

    2.4 @RestController
    역할: struts의 action과 같은 제어층 구성 요소를 표시하고 @ResponseBody와 @Controller의 집합을 표시합니다.코드 예:
    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController 
    @RequestMapping(“/demo”) 
    publicclass DemoController2 {
    
    	@RequestMapping("/test")
    	public String test(){
    		return"ok";
    	}
    }
    

    2.5 @RequestMapping
    역할: URL을 Controller에 매핑하는 라우팅 정보를 제공합니다.
    2.6 @EnableAutoConfiguration
    역할: 자동 구성(auto-configuration)추가한jar에 따라 Spring 응용 프로그램을 자동으로 설정해 보십시오.예를 들어,classpath에 HSQLDB가 존재하고, 데이터베이스 연결 빈스를 수동으로 설정하지 않으면, 메모리형 (in-memory) 데이터베이스를 자동으로 설정합니다.
    @Enable AutoConfiguration 또는 @SpringBootApplication 주석을 @Configuration 클래스에 추가하여 자동 설정을 선택할 수 있습니다.원하지 않는 특정 자동 구성 클래스가 적용된 것을 발견하면 @Enable AutoConfiguration 메모의 배제 속성을 사용하여 사용하지 않을 수 있습니다.
    2.7 @ComponentScan
    역할: 이 클래스를 자동 검색 스캔 구성 요소로 표시합니다.즉 @Component, @Controller, @Service 등 주석이 있는 클래스를 스캔하고 Bean으로 등록하면 @Configuration 클래스를 포함한 모든 Spring 구성 요소를 자동으로 수집할 수 있습니다.@ComponentScan 주석을 사용하여 빈스를 검색하고 @Autowired 주석과 함께 가져옵니다.@Configuration 클래스를 포함한 모든 Spring 구성 요소를 자동으로 수집할 수 있습니다.
    구성이 없으면 Spring Boot은 시작 클래스와 하위 패키지에서 @Service, @Repository 등의 메모를 사용하는 클래스를 검색합니다.
    2.8 @Configuration
    역할: 전통적인 xml 프로필에 해당합니다. 만약에 제3자 라이브러리에서 xml 파일을 사용해야 한다면 @Configuration 클래스를 프로젝트의 프로필 주 클래스로 사용하십시오. @ImportResource 주석을 사용하여 xml 프로필을 불러올 수 있습니다.
    2.9 @Import
    역할: 다른 설정 클래스를 가져오는 데 사용합니다.
    2.10 @ImportResource
    역할: xml 프로필을 불러옵니다.
    2.11 @Autowired
    역할: 의존하는 bean을 자동으로 가져옵니다.byType 방식.설정된 빈을 가져와서 속성, 방법의 조립을 완성합니다. 클래스 구성원의 변수, 방법과 구조 함수를 표시하여 자동 조립 작업을 완성할 수 있습니다.(required=false)를 더하면 비안을 찾지 못해도 틀리지 않습니다.
    2.12 @Service
    역할: 서비스 층을 수식하는 데 일반적으로 사용되는 구성 요소
    2.13 @Repository
    역할: @Repository 주석을 사용하면 DAO나 Repositories가 비정상적인 번역을 제공할 수 있습니다. 이 주석이 수식된 DAO나 Repositories 클래스는ComponetScan에 의해 발견되고 설정되며 XML 설정 항목을 제공할 필요가 없습니다.
    2.14 @Bean
    역할: @Bean 표시 방법으로 XML에 설정된 bean과 같습니다.
    2.15 @Value
    역할: Spring boot 응용 프로그램을 주입합니다.properties 설정의 속성 값입니다.코드 예:
    @Value(value = “#{message}”) 
    private String message;
    

    2.16 @Inject
    역할: 기본 @Autowired와 같습니다. Required 속성이 없습니다.
    2.17 @Component
    역할: 구성 요소를 가리키며, 구성 요소가 분류하기 어려울 때, 우리는 이 주석을 사용하여 표시할 수 있습니다.
    2.18 @Qualifier
    역할: 같은 종류의 빈이 여러 개 있을 때 @Qualifier ("name") 로 지정할 수 있습니다.@Autowired와 함께 사용합니다. @Qualifier 한정 설명자는 이름에 따라 주입할 수 있을 뿐만 아니라 후보자를 어떻게 선택하는지 더욱 세밀하게 제어할 수 있다. 구체적인 사용 방식은 다음과 같다.
    @Autowired 
    @Qualifier(value = “demoInfoService”) 
    private DemoInfoService demoInfoService;
    

    2.19 @Resource(name=”name”,type=”type”)
    역할: 괄호 안에 내용이 없으면 기본값byName.@Autowired와 비슷한 일을 합니다.
    3. JPA 메모
    3.1 @Entity:@Table(name=”“)
    작용: 이것은 실체류로 일반적으로 jpa에 사용된다는 것을 나타낸다.이 두 주석은 일반적으로 함께 사용하지만, 테이블 이름과 실체 클래스가 같으면 @Table를 생략할 수 있습니다.
    3.2 @MappedSuperClass
    역할: 부류인entity를 확인하는 데 사용됩니다.부류의 속성은 부류가 계승할 수 있다.
    3.3 @NoRepositoryBean
    역할: 일반적으로 부류의 Repository로 사용되는데, 이 주석이 있으면spring은 이 Repository를 실례화하지 않습니다.
    3.4 @Column
    역할: 필드 이름이 열 이름과 같으면 생략할 수 있습니다.
    3.5 @Id
    작용: 이 속성이 메인 키임을 나타낸다.
    3.6 @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”)
    역할: 키 생성 정책이 sequence(Auto, IDENTITY,native 등이고 Auto는 여러 데이터베이스 사이를 전환할 수 있음을 나타낸다),sequence의 이름은 repairseq.
    3.7 @SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1)
    역할:name은 sequence의 이름입니다. sequenceName은 데이터베이스의 sequence 이름이고 두 이름은 일치할 수 있습니다.
    3.8 @Transient
    역할: 이 속성이 데이터베이스 테이블에 있는 필드가 아닌 것을 의미하며, ORM 프레임워크는 이 속성을 무시합니다.데이터베이스 테이블의 필드 매핑이 아닌 속성은 @Transient로 표시해야 합니다. 그렇지 않으면 ORM 프레임의 주석이 @Basic으로 기본값으로 표시됩니다. @Basic(fetch=FetchType.LAZY): 태그는 솔리드 속성을 로드하는 방법을 지정합니다.
    3.9 @JsonIgnore
    역할: json 서열화 시 자바 bean의 일부 속성을 무시하고 서열화와 반서열화에 영향을 줍니다.
    3.10 @JoinColumn(name=”loginId”)
    역할: 일대일.한 쌍이 많다.
    3.11 @OneToOne、@OneToMany、@ManyToOne
    역할:hibernate 프로필에 대응하는 일대일, 일대일, 다대일.
    4. SpringMVC 관련 주석
    4.1 @RequestMapping
    역할: @RequestMapping ("/path") 은 이 컨트롤러가 모든 "/path"의 UR L 요청을 처리합니다.RequestMapping은 요청 주소 매핑을 처리하는 데 사용되는 주석으로 클래스나 방법에 사용할 수 있습니다.클래스에서 클래스의 모든 응답 요청을 표시하는 방법은 이 주소를 부모 경로로 합니다.
    메모에는 다음과 같은 6개의 속성이 있습니다.
  • params: 지정한 Request에 일부 파라미터 값을 포함해야 이 방법을 처리할 수 있습니다.
  • headers: 지정한 Request에 지정한 헤더 값을 포함해야 요청을 처리할 수 있습니다.
  • value: 요청한 실제 주소를 지정합니다. 지정한 주소는 URI Template 모드
  • 일 수 있습니다.
  • method: 요청한 method 유형 지정, GET, POST, PUT, DELETE 등
  • consumes: 요청을 처리하는 제출 내용 유형(Content-Type)을 지정합니다. 예를 들어 응용 프로그램/json,text/html;
  • produces: 되돌아오는 내용 형식을 지정합니다. Request 요청 헤더에 있는 (Accept) 형식에 이 종류가 포함되어 있을 때만 되돌아옵니다
  • 4.2 @RequestParam
    역할: 방법의 매개 변수 앞에 사용합니다.
    @RequestParam 
    String a =request.getParameter(“a”)。
    

    4.3 @PathVariable
    역할: 경로 변수, 매개 변수는 괄호 안의 이름과 같습니다.아래와 같다
    RequestMapping(“user/get/mac/{macAddress}”) 
    public String getByMacAddress(@PathVariable String macAddress){ 
    	//do something; 
    } 
    

    5. 전역 이상 처리
    5.1 @ControllerAdvice
    역할: @Component가 포함되어 있습니다.스캔될 수 있습니다.이상을 통일적으로 처리하다.
    5.2 @ExceptionHandler(Exception.class)
    작용: 방법상 이 이상이 발생하면 다음과 같은 방법을 집행한다는 것을 나타낸다.
    참조:
  • https://mp.weixin.qq.com/s/m5pHwJFwWfMG78S1394u6w
  • 좋은 웹페이지 즐겨찾기