Trouble-Shooting

Bean ์ฃผ์ž… ์•ˆ๋จ : ์ž๋™ ์ฃผ์ž…๋œ ๋ฉค๋ฒ„๋Š” ์˜ฌ๋ฐ”๋ฅธ Spring bean์—์„œ ์ •์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(@Component|@Service|...)

์ฑ”๐Ÿป 2024. 1. 24. 16:19

์ž‘์„ฑ์ผ์ž: 2023๋…„ 5์›” 15์ผ

โœ”๊ฒฐ๋ก 


๐Ÿ‘€๋ฌธ์ œ ์ •์˜

UserDao๊ฐ€ ์ฃผ์ž…์ด ์•ˆ๋จ

sout์œผ๋กœ ์ฐ์–ด๋ณด๋ฉด null๋œฌ๋‹ค..

class UserDaoImplTest {
    @Autowired
    UserDao userDao;

    @Test
    void selectUser() throws SQLException {
        System.out.println("userDao = " + userDao);
//        User user = userDao.selectUser("coals0115");
//        assertTrue("coals0115".equals(user.getId()));
    }
}

๐Ÿฆพํ•ด๊ฒฐ์ฑ… ์‹œ๋„

  1. โŒย UserDaoImpl์— @Repository ๋ถ™์–ด์žˆ๋Š” ๊ฑฐ ํ™•์ธํ–ˆ์Œ
    @Repository
    public class UserDaoImpl implements UserDao {
        @Autowired
        DataSource dataSource;
  1. โŒย root-context.xml์— ์ปดํฌ๋„ŒํŠธ ์Šค์บ”
    <context:component-scan base-package="com.fastcampus" />
  1. โŒย servlet-context.xml์— ์ปดํฌ๋„ŒํŠธ ์Šค์บ”
    <context:component-scan base-package="com.fastcampus" />
  1. ApplicationContext ์ง์ ‘ ์ฐ์–ด๋ณด๊ธฐ

    UserDao.class ๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ๊ฐ’์ด ์žˆ๋Š”๋ฐ @Autowired ์• ๋„ˆํ…Œ์ด์…˜์œผ๋กœ ์ฃผ์ž…๋ฐ›์•„์„œ ์˜ค๋ฉด ์•ˆ๋จโ€ฆ

    class UserDaoImplTest {
        @Autowired
        UserDao userDao;
    
        @Test
        void selectUser() throws SQLException {
            ApplicationContext ac = new GenericXmlApplicationContext("file:src/main/webapp/WEB-INF/spring/**/root-context.xml");
            System.out.println("ac = " + ac);
    
            UserDao userDao1 = (UserDao) ac.getBean(UserDao.class);
            System.out.println("userDao1 = " + userDao1);
    
            System.out.println("userDao = " + userDao);
    
    //        System.out.println("userDao = " + userDao);
    //        User user = userDao.selectUser("coals0115");
    //        assertTrue("coals0115".equals(user.getId()));
        }
    }


โœ”์›์ธ & ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์—์„œ๋Š” ์•„๋ž˜ ๋‘ ์ค„์ด ํ•„์š”ํ•จ ๋„ฃ์–ด์ฃผ๋‹ˆ ์—๋Ÿฌ ์—†์ด ์ž˜ ๋œ๋‹ค.

// ํ•˜๋‚˜์˜ ac๋ฅผ ๋งŒ๋“ค์–ด๋‘๊ณ  ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์— ์ด์ ์ด ์žˆ์Œ
@RunWith(SpringJUnit4ClassRunner.class) // ac๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์คŒ
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
// xml ์„ค์ • ํŒŒ์ผ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์คŒ. root-context.xml์— ์กด์žฌํ•˜๋Š” bean์œผ๋กœ ํ…Œ์ŠคํŠธํ•จ

์œ„์—์„œ userDao1 ์ œ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ ์ด์œ ๋Š” ์ง์ ‘ ac ์ƒ์„ฑํ•ด์คฌ๊ธฐ๋•Œ๋ฌธ..

userDao๋Š” ac ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ์ด ์•ˆ ๋˜์–ด์„œ ์ฃผ์ž…์„ ๋ชป ๋ฐ›์•„์˜จ ๊ฒƒ


Uploaded by N2T