먼저 자바빈을 알아보자 자바빈은 보통 get, set을 메서드 명 앞에 붙인다. XML를 설정할 때 property에서 name에는 이 get, set을 떼어낸 부분에서 가장 앞 글자만 소문자를 만드는 걸 제외하면 똑같이 들어가야 한다.
예를 들면, setdataSource라는 자바빈 규약을 따르는 메서드가 있을 때 name부분에는 dataSource가 들어가야지 datasource이런식으로 들어가면 안된다. 잘못 들어갈 시에 밑에 부분과 같은 execption이 발생한다,.
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dao' defined in class path resource [settinginfo.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'datasource' of bean class [practice.SpringPRT.DaoJDBC]: Bean property 'datasource' is not writable or has an invalid setter method. Did you mean 'dataSource'?
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1744)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1452)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.context.support.GenericXmlApplicationContext.<init>(GenericXmlApplicationContext.java:71)
at practice.SpringPRT.SpringPrtApplication.main(SpringPrtApplication.java:20)
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'datasource' of bean class [practice.SpringPRT.DaoJDBC]: Bean property 'datasource' is not writable or has an invalid setter method. Did you mean 'dataSource'?
at org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.java:243)
at org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:432)
at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:278)
at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:266)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:104)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:79)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1740)
... 12 more
[JAVA] 얕은 복사(Swallow Copy)와 깊은 복사(Deep Copy) (0) | 2023.02.21 |
---|---|
[Spring] @Autowired와 어노테이션에 관해서 (0) | 2023.02.19 |
[Spring] 객체지향설계원칙-SOLID란? (0) | 2023.02.17 |
[Spring] MAVEN 환경에서 JDBC를 인식하지 못하는 상황일 때 (0) | 2023.02.17 |
[JAVA] String의 Null 체크 (0) | 2022.12.05 |