4

ここのチュートリアルに従って、純粋に注釈駆動型 (xml なし) の spring 3 アプリケーションを作成しています。

そして、これが私の構成ファイルです

@Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
    DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
    driverManagerDataSource.setDriverClassName("org.postgresql.Driver");
    driverManagerDataSource.setUrl("jdbc:postgresql://localhost:5432/test");
    driverManagerDataSource.setUsername("postgres");
    driverManagerDataSource.setPassword("gayle");
    return driverManagerDataSource;
}

@Bean(name = "studentJDBCTemplate")
public StudentJDBCTemplate studentJDBCTemplate() {
    StudentJDBCTemplate studentJDBCTemplate = new StudentJDBCTemplate();
    studentJDBCTemplate.setDataSource(dataSource());
    studentJDBCTemplate.setDataSourceTransactionManager(dataSourceTransactionManager());
    studentJDBCTemplate.setJdbcTemplate(new JdbcTemplate());
    return studentJDBCTemplate;
}

@Bean
public DataSourceTransactionManager dataSourceTransactionManager() {
    DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
    dataSourceTransactionManager.setDataSource(dataSource());
    return dataSourceTransactionManager;
}

今私はやろうとしているdeclarative transaction managementので、私のcreate()方法は内部にありますStudentJDBCTemplate

public void create(String name, Integer age) {
    System.out.println("Creating!");
    String SQL = "insert into Student (name, age) values (?, ?)";
    jdbcTemplate.update(SQL, name, age);
    System.out.println("Created Record Name=" + name + " Age=" + age);
}

トランザクション マネージャーをプログラムで呼び出すことはありません。

どうすればこれを達成できますか? これを行うには を宣言する@Aspect必要がありますか? トランザクションをいつコミットするかを自動的に構成できる注釈はありますか?

4

1 に答える 1