njection of resource dependencies failed 에러 발생했을경우 


어노테이션 사용했던 컨트롤러에서 


@service나 @repository 등 어노테이션을 정의해주지 않아서 그럴 가능성이 크다 .

필자는 해당 컨트롤러에서 서비스에 @Service어노테이션을 선언해줬고 인터패이스만 만들어놨는데 에러가 발생했다.

해당부분을 우선적으로 지우니까 에러는 해결되었다 .


'Back-End > Spring' 카테고리의 다른 글

Context initialization failed 오류  (0) 2018.02.20
Spring 어노테이션 @Resource  (0) 2017.12.13
HashMap  (0) 2017.12.12
Spring 어노테이션 @PathVariable  (0) 2017.06.05

Two controllers with same name under different packages in Spring

컨트롤러에 두게의 파일 이름을 같을때 @Controller("controller1"),@Controller("controller2") 이런식으로 분기를 해줘야 함


'Back-End > Spring' 카테고리의 다른 글

Spring]Injection of resource dependencies failed 에러  (0) 2019.03.10
Spring 어노테이션 @Resource  (0) 2017.12.13
HashMap  (0) 2017.12.12
Spring 어노테이션 @PathVariable  (0) 2017.06.05

@Resource 어노테이션은 어플리케이션에서 필요로 하는 자원을 자동 연결할 떄 사용된다.

프로퍼티 및 설정메서드(Setter, Getter)등에 적용시키며 스프링 설정파일에 등록되어있는 빈 객체의 name 속성을 통하여 자동으로 주입된다.


비슷한 어노테이션으로는 

@Autowired 어노테이션이 있다.


@Autowired

- 비표준 / Spring Framework용

- Bean 검색 우선 순위 : Type 우선

- @Qualifier("")을 사용하여 지정 가능

  ex) @Autowired

 @Qualifier("test1") // 이건 Bean이 여러게 검색되었을때 이 어노테이션도 사용하여 구분 짖는다.

이런식으로 지정해 줘야 함


@Resource

- Java표준

- Bean 검색 우선 순위 : ID 우선

- Name 속성으로 지정 가능

  ex) @Resource

 @Name("test1")

이런식으로 지정해 줘야 함.


@Resource는 프로퍼티와 일치하는 빈을 찾을 것이고, 혹은 name 속성을 이용해 명시적으로 빈의 이름을 설정할 수 있다

'Back-End > Spring' 카테고리의 다른 글

Spring]Injection of resource dependencies failed 에러  (0) 2019.03.10
Context initialization failed 오류  (0) 2018.02.20
HashMap  (0) 2017.12.12
Spring 어노테이션 @PathVariable  (0) 2017.06.05

Java HashMap이란?


HashMap이란 Map인터페이스의 한종류로써 Key와 Value 값으로 데이터를 저장하는 형태를 가지고 있다.


Key 값은 중복이 불가능하고, value 값은 중복이 가능하며, value에는 null도 사용 가능.


ex)

 map.put("BTC","1000만원");

 map.put("BTG","30만원");

 map.put("BTC","2000만원");


결과 : 최종 BTC를 호출할때는 Key에 저장된 value, 2000만원으로 마지막에 입력된 값으로 변경되어 2000만원이 호출 된다.



HashMap() 사용 방법

-HashMap 객체를 생성


HashpMap<Spring, Integer> map = new HashMap<String, Integer>();





생성자/메서드설명
HashMap()HashMap 객체를 생성한다.
HashMap(int initialCapacity)지정된 값을 초기용량으로 하는 HashMap 객체 생성한다.
HashMap(int initialCapacity , float loadFactor)지정된 값을 초기용량과 load factor의 HashMap 객체 생성한다.
HashMap(Map m)주어진 Map에 저장된 모든 요소를 포함하는 MashMap 을 생성한다.
void clear()HashMap에 저장된 모든 객체를 제거한다.
Object clone()현재 HashMap을 복제하여 반환한다.
boolean containsKey(Object key)HashMap에 지정된 키(key)가 포함되어 있는지 알려준다. (포함되어 있으면 true)
boolean containsValue(Object key)HashMap에 지정된 값(value)가 포함되어 있는지 확인한다.(포함되어 있으면 true)  
Set entrySet()HashMap에 저장된 키와 값을 엔트리(키와 값의 결합)의 형태로 Set에 저장하여 반환한다.
Object get(Object key)지정된 키(Key)의 값(객체)을 반환한다.
boolean isEmpty()HashMap이 비어 있는지 확인한다.
Set keySet()HashMap에 저장된 모든 키가 저장된 Set을 반환 한다.
Object put(Object key, Object value)HashMap에 키와 값을 저장 한다.
void putAll(Map m)Map에 해당하는 모든 요소를 HashMap에 저장 한다.
Object remove(Object key)HashMap에서 지정된 키로 저장된 값(객체)를 제거한다.
int size()HashMap에 저장된 요소의 개수를 반환한다.
Collection values()HashMap에 저장된 모든 값을 컬렉션 형태로 반환한다.


 

@PathVariable 어노테이션은 Spring에서 제공하는 기능이다.


@PathVariable를 사용하면 URL에서 파라미터를 보내서 사용 할 수 있다.

 

URL호출 

http://localhost:8080/notice/test.do 


 Controller 에서 @RequestMapping 어노테이션안에 {'bbs'} 이런식으로 사용을 하면  

-> @RequestMapping(value = "/notice/{bbs}.do") 


위에 빨간색 부분이 파라미터로 받을 수 있게 만들며

@PathVariable("bbs") String bbs;


@PathVariable을 사용하여 메소드변수에 이런식으로 사용한다.


이때 변수 타입이 맞게 정확한 URL이 입력 되어야 한다. 


@PathVariable("bbs") String bbs; -> @PathVariable("bbs") int bbs; 이면 

URL 입력하는 부분이 문자열이 들어가면 안됨.



사용 방법

Controller에서 


@RequestMapping(value = "/notice/{bbs}.do", method = { RequestMethod.GET, RequestMethod.POST })

public String noticeCallList(HttpServletRequest request, 

     ModelMap map,Model model,@PathVariable("bbs") String bbs){


Systemout.println("bbs 테스트 ::::"+ bbs);

 URL에서 localhost:8080/notice/test.do를 호출 하면

test가 Consol에 찍히는걸 확인 할 수 있을 것이다.





사용 이유 :::: 동일하고 여러개의 컨트롤러를 사용 할 때 유의 함.

응용해서 사용하면 여러가지 폭넓게 계발이 가능함.


'Back-End > Spring' 카테고리의 다른 글

Spring]Injection of resource dependencies failed 에러  (0) 2019.03.10
Context initialization failed 오류  (0) 2018.02.20
Spring 어노테이션 @Resource  (0) 2017.12.13
HashMap  (0) 2017.12.12

+ Recent posts