에러 모음

[Spring Framework] UnsatisfiedDependencyException

junani0v0 2024. 5. 29. 23:35

< 에러 메시지 >

SEVERE: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'joinController': Unsatisfied dependency expressed through field 'joinService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'joinService': Unsatisfied dependency expressed through field 'memberRepository'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberRepository' defined in file [C:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\001_portfolio_jun\WEB-INF\classes\com\portfolio\www\auth\mybatis\MemberRepository.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in file [C:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\001_portfolio_jun\WEB-INF\classes\context-beans.xml]: Invocation of init method failed; nested exception is java.io.IOException: Failed to parse mapping resource: 'file [C:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\001_portfolio_jun\WEB-INF\classes\sql\SQL.MemberAuth.xml]'

 

UnsatisfiedDependencyException

Spring Framework에서 발생하는 예외로, 빈을 생성하거나 주입하는 과정에서 의존성을 충족할 수 없어 발생

< 원인 >

<mapper namespace="com.portfolio.www.auth.mybatis.MemberAuthRepository">

    <insert id="addAuthInfo" parameterType="MemberAuthDto">
    	<selectKey resultType="String" keyProperty="memberSeq" keyColumn="member_seq" order="AFTER" >
    	SELECT LAST_INSERT_ID()
    	</selectKey>
    	INSERT INTO forum.member_auth
    		   (member_seq, auth_num, auth_uri, reg_dtm, expire_dtm, auth_yn)
    	VALUES (#{memberSeq}, '', #{authUri}, DATE_FORMAT(NOW()  ,'%Y%m%d%H%i%s'), #{expireDtm}, 'N')
    </insert>

joinController -> joinService -> memberRepository -> sqlSessionFactory순으로 빈을 생성하는 과정에서 최종적으로 qlSessionFactory를 초기화할 때 SQL.MemberAuth.xml 파일을 읽지 못해 발생한 오류

 

mapper를 닫지 않아서 SQL.MemberAuth.xml을 제대로 찾지못해 발생한 에러

< 해결 >

<mapper namespace="com.portfolio.www.auth.mybatis.MemberAuthRepository">

    <insert id="addAuthInfo" parameterType="MemberAuthDto">
    	<selectKey resultType="String" keyProperty="memberSeq" keyColumn="member_seq" order="AFTER" >
    	SELECT LAST_INSERT_ID()
    	</selectKey>
    	INSERT INTO forum.member_auth
    		   (member_seq, auth_num, auth_uri, reg_dtm, expire_dtm, auth_yn)
    	VALUES (#{memberSeq}, '', #{authUri}, DATE_FORMAT(NOW()  ,'%Y%m%d%H%i%s'), #{expireDtm}, 'N')
    </insert>
</mapper>

mapper 닫아줌으로서 간단히 해결