develog

REQUIRES_NEW 본문

Dev/Java

REQUIRES_NEW

냐옴 2013. 7. 18. 13:41

public class TestService {


    @Autowired

    private TestDao testDao;


    @Autowired

    private ApplicationContext applicationContext;

    

    public void insertAll() {

        for (int i = 1; i <= 4; i++) {

            try {

                String ret = eachInsert(i);

                System.out.println(i + ", OK, " + ret);

            } catch (Exception e) {

                System.out.println(i + ", ERR, " + e.getMessage());

            }

        }

    }

    

    public String insert(final int num) {

        String ret = null;

        

        PlatformTransactionManager transactionManager = (PlatformTransactionManager) applicationContext.getBean("transactionManager");

        TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);

        transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);

        ret = (String) transactionTemplate.execute(new TransactionCallback() {

            public String doInTransaction(TransactionStatus status) {

                int cnt = testDao.insert(num);

                if (num % 2 == 0) {

                    throw new RuntimeException("TEST ERR!");

                }

                return String.valueOf(cnt);

            }

        });

        

        return ret;

    }


}



'Dev > Java' 카테고리의 다른 글

[web-app spec] servlet, tomcat, java, web.xml version  (0) 2013.07.25
servlet, jsp, tomcat, java 버전별 비교  (0) 2013.07.24
jndi  (0) 2013.07.18
template, callback  (0) 2013.07.17
AsyncHttpClient  (0) 2013.07.11
Comments