spring springMVC 에서 자주 사용 되 는 주석 해석

8437 단어 springspringmvc주해
1.주석 사용:
    spring 설정 파일 applicationContext.xml 에 주석 스 캔 을 추가 합 니 다.설정 항목 은 지정 한 가방 을 스 캔 하여 주입 에 의존 하도록 설정 합 니 다.

<?xml version="1.0" encoding="UTF-8"?> 
<span style="font-size:18px;"><beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:aop="http://www.springframework.org/schema/aop"
  xsi:schemaLocation=" 
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 
  <aop:aspectj-autoproxy/> 
  <context:annotation-config/> 
  <context:component-scan base-package="com.test" /> //    
</beans>
2.흔히 볼 수 있 는 주석:

@Controller
@Service
@Autowired
@RequestMapping
@RequestParam
@ModelAttribute
@Cacheable
@CacheFlush
@Resource
@PostConstruct
@PreDestroy
@Repository
@Component (     )
@Scope
@SessionAttributes
@InitBinder
@Required
@Qualifier
3.spring 주석 을 자주 사용 합 니 다.
@Controller(표현 층 에 사용)
@Controller 주석 표지 UserAction 을 사용 한 후 UserAction 을 Spring 용기 관리 에 맡 기 겠 다 고 밝 혔 습 니 다.Spring 용기 에'userAction'이라는 action 이 존재 합 니 다.이 이름 은 UserAction 클래스 이름 에 따라 지 어 졌 습 니 다.메모:@Controller 가 value[@Controller]를 지정 하지 않 으 면 기본 bean 이름 은 이 종류의 이니셜 소문 자 입 니 다.value[@Controller(value="UserAction")]또는[@Controller("UserAction")]를 지정 하면 value 를 bean 의 이름 으로 사용 합 니 다.
이곳 의 UserAction 은@Scope 주 해 를 사 용 했 습 니 다.@Scope("prototype")는 Action 의 범 위 를 원형 으로 설명 하고 용기 의 scope="prototype"을 이용 하여 모든 요청 에 하나의 단독 Action 으로 처리 하여 struts 에서 Action 의 스 레 드 안전 문 제 를 피 할 수 있 습 니 다.spring 기본 scope 는 단일 모드(scope="singleton")입 니 다.이렇게 하면 하나의 Action 대상 만 만 만 들 수 있 습 니 다.매번 방문 할 때마다 같은 Action 대상 이 고 데이터 가 안전 하지 않 습 니 다.struts 2 는 매번 방문 할 때마다 서로 다른 Action 에 대응 하도록 요구 합 니 다.scope="prototype"는 요청 이 있 을 때 Action 대상 을 만 들 수 있 습 니 다.
@Controller

@Scope("prototype")
public class UserAction extends BaseAction<User>{  
}
@Service(비 즈 니스 논리 층 에 적용)
@service 주 해 는 인터페이스 가 아 닌 서비스 인터페이스의 실현 클래스 에서 사 용 됩 니 다.
스프링 의 제어 반전 을 잘 보 여 줍 니 다.우 리 는 대상 이 스스로 실례 화 대상 에 의존 하지 않 고 하나의 용기 로 대상 을 만 들 고 IOC 에서 관리 합 니 다.실례:
Action 이 UserServiceImpl 을 사용 하려 면 먼저 UserServiceImpl 의 인 스 턴 스 를 만 들 필요 가 없습니다.UserServiceImpl 인 스 턴 스 를 만 드 는 것 은 Spring 에 맡 겼 습 니 다.Spring 은 만 든 UserServiceImpl 인 스 턴 스 를 Action 에 주 고 Action 을 받 으 면 직접 사용 할 수 있 습 니 다.Action 은 원래 의 주동 적 으로 UserServiceImpl 인 스 턴 스 를 만 든 후에 바로 사용 할 수 있 고 Spring 에서 UserServiceImpl 인 스 턴 스 를 만 든 후에 Action 에 주입 해 야 Action 이 사용 할 수 있 습 니 다.이 는 Action 이'User ServiceImpl'류 에 대한'통제 권'이 이미'반전'되 었 다 는 것 을 의미한다.원래 주동 권 은 자신의 손 에 있 고 자신 이'User ServiceImpl'류 의 인 스 턴 스 를 사용 해 야 한다.자신 이 자발적으로 new 에 가서 나 오 면 바로 사용 할 수 있 지만 지금 은 스스로 new'User ServiceImpl'류 의 인 스 턴 스 를 사용 할 수 없다.new"User ServiceImpl"류 의 인 스 턴 스 권한 은 Spring 에 의 해 가 져 갔 습 니 다.Spring 만 이 new"User ServiceImpl"류 의 인 스 턴 스 를 만 들 수 있 습 니 다.Action 은 Spring 이"User ServiceImpl"류 의 인 스 턴 스 를 만 든 후에"간청"Spring 이 만 든"User ServiceImpl"류 의 인 스 턴 스 를 그 에 게 줄 수 있 습 니 다.그래 야 그 는"User ServiceImpl"을 사용 할 수 있 습 니 다.스프링 의 핵심 사상 인'반전 제어'를'의존 주입'이 라 고도 하 는데,'의존 주입'도 이해 하기 쉽다.액 션 은 UserServiceImpl 을 사용 해 일 을 해 야 한다.그러면 UserServiceImpl 에 의존 하 게 되 고,스프링 은 에이 션 이 의존 해 야 할 UserServiceImpl 을 액 션 에 주입(즉'주')하 는 이른바'의존 주입'이다.Action 에 게 Action 은 무엇 에 의존 하 는 지 Spring 에 게 주입 을 요청 하고 Spring 에 게 Action 이 필요 로 하 는 것 이 있 으 면 Spring 은 자발적으로 주입 한다.

@Service("userService")
public class UserServiceImpl implements UserService {
}
@Repository(데이터 관리 층 에 사용)
필 자 는 도 구 를 사용 하여 역방향 으로 생 성 된 실체 층 데이터 Model 과 mapper 이기 때문에 이 주 해 를 사용 하지 않 았 습 니 다.그러나 이것 은 간단하게 spring 용기 에 Bean 을 주입 하 는 것 입 니 다.

@Repository(value="userDao")
public class UserDaoImpl extends BaseDaoImpl<User> {
}
4.springMVC 주석 을 자주 사용 합 니 다.
@Autowired(유형 별로 주입)
클래스 구성원 변수,방법 및 구조 함 수 를 표시 하여 자동 조립 작업 을 완성 합 니 다.쉽게 말 하면 빈 을 호출 하여 스프링 이라는 존재 와 관 리 된 용기 에 대해 알려 준다.
@Autowired 는 bean 형식 에 따라 spring 온라인 에서 찾 습 니 다.등록 유형 은 유일 해 야 합 니 다.그렇지 않 으 면 이상 을 보고 해 야 합 니 다.
@Autowired 레이 블 이 Map 형식 에 작용 할 때 Map 의 key 가 String 형식 이면 Spring 은 용기 에 있 는 모든 종류의 Map 에 맞 는 value 에 대응 하 는 유형의 Bean 을 추가 하고 Bean 의 id 나 name 을 Map 의 key 로 사용 합 니 다.
@Autowired 의 또 다른 역할 은 BeanFactory 유형,ApplicationContext 유형,Resource Loader 유형,ApplicationEventPublisher 유형,MessageSource 유형 에 표시 하면 Spring 은 이러한 실현 유형의 인 스 턴 스 를 자동 으로 주입 하여 액 외 작업 이 필요 하지 않 습 니 다.
@Autowired
private IReportService reportService ;
@Resource(이름 으로 입력)
@Autowired 와 유사 합 니 다.@Resource 는 기본적으로 bean 의 name 으로 찾 습 니 다.찾 지 못 하면 type 으로 찾 습 니 다.
@Resource
private DataSource dataSource; // inject the bean named 'dataSource'
@Resource(name="dataSource")
@Resource(type=DataSource.class)
연장 문제:유형 에 따라 조립 하 는 것 이 무엇 입 니까?이름 에 따라 조립 하 는 것 이 무엇 입 니까?
유형 이란 Spring 용기 에 지정 한 속성 유형 과 같은 bean 이 존재 하면 이 속성 을 자동 으로 조립 하 는 것 입 니 다.이 유형의 bean 이 여러 개 존재 하면 이상 이 발생 하고 유형 에 따라 자동 으로 조립 할 수 없다 고 지적 합 니 다.일치 하 는 bean 을 찾 지 못 하면 아무 일 도 일어나 지 않 습 니 다.
이름,즉 속성 명 에 따라 자동 으로 조립 하 는 것 입 니 다.이 항목 은 Spring 용기 에서 이 속성 명 과 완전히 일치 하 는 bean 을 검사 하여 자동 으로 조립 합 니 다.
@RequestMapping(맵 요청 주소)
요청 주소 맵 을 처리 하 는 데 사용 되 는 주 해 는 클래스 나 방법 에 사용 할 수 있 습 니 다.클래스 에 사용 할 때 클래스 의 모든 응답 요청 을 표시 하 는 방법 은 이 주 소 를 부모 경로 로 합 니 다.
그 중 여섯 개의 속성 이 있 는데 각각:
1、 value, method;
value:     요청 한 실제 주 소 를 지정 합 니 다.지정 한 주 소 는 URI Template 모드 일 수 있 습 니 다.
method:  요청 한 method 형식,GET,POST,PUT,DELETE 등 을 지정 합 니 다.
2、consumes,produces
consumes:요청 한 제출 내용 형식(Content-Type)을 지정 합 니 다.예 를 들 어 application/json,text/html;
produces:    되 돌아 오 는 콘 텐 츠 형식 을 지정 합 니 다.request 요청 헤더 에 있 는(Accept)형식 에 만 지정 한 형식 이 포함 되 어 있 을 때 되 돌아 갑 니 다.
3、params,headers
params:지정 한 request 에 일부 매개 변수 값 을 포함해 야 이 방법 을 처리 할 수 있 습 니 다.
headers:지정 한 request 에는 지정 한 header 값 이 포함 되 어 있어 야 요청 을 처리 할 수 있 습 니 다.

@Controller
@RequestMapping("/bbtForum.do")
public class BbtForumController {
  @RequestMapping(params = "method=listBoardTopic")
  public String listBoardTopic(int topicId,User user) {}
}
@RequestMapping("/softpg/downSoftPg.do")
@RequestMapping(value="/softpg/ajaxLoadSoftId.do", method=RequestMethod.POST)
@RequestMapping(value="/osu/product/detail.do", params={"modify=false"}, method=RequestMethod.POST)
 @RequestParam(요청 매개 변수의 값 가 져 오기)
예 를 들 어 우리 가 브 라 우 저 에 접근 한 주 소 는 localhost:8080/hello?id=1000 이면 id 의 값 을 받 습 니 다.예 를 들 어:

@RestController
public class HelloController {
 
  @RequestMapping(value="/hello",method= RequestMethod.GET)
  public String sayHello(@RequestParam("id") Integer id){
    return "id:"+id;
  }
}
@PathVaribale  (url 의 데이터 가 져 오기)

@RestController
public class HelloController {
 
  @RequestMapping(value="/hello/{id}",method= RequestMethod.GET)
  public String sayHello(@PathVariable("id") Integer id){
    return "id:"+id;
  }
}
@Response Body(반환 형식 은 json)
역할:이 주 해 는 Controller 의 방법 을 되 돌려 주 는 대상 으로,적절 한 HttpMessageConverter 를 통 해 지 정 된 형식 으로 변환 한 후 Response 대상 의 body 데이터 영역 에 기록 합 니 다.
사용 시기:돌아 오 는 데 이 터 는 html 태그 의 페이지 가 아니 라 다른 형식의 데이터 일 때(예 를 들 어 json,xml 등)사용 합 니 다.
총결산
위 에서 말 한 것 은 편집장 이 소개 한 spring springMVC 에서 자주 사용 하 는 주해 해석 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기