Spring注釈統合(hibernate+mybatis)学習ノート
Springのコメント
ビーズプロファイルのコメント
ビーンファイルに注釈を付ける;クラスの上で、使用します.
@Component(「xml中のid」)はビーンを登録することを表します.
@Resource prvate Session Factory sf;外部ファイルに依存していることを表します.
業務対象への依存度は、例えば、epetService;@Resource prvate IPetDao petdao;(setしないで、get方法があります.)
業務操作対象(事務機能を有する事業対象の注釈)
@srping注釈をスキャンする
両者の違いはSession工場の違いですので、SpringにSession FactoryBean二つを登録できます.それぞれHibernateとMybatisサービスを聞きます.ちょうど二つのSession工場は違う種類に属しています.一つはsql Session Factoryで、一つはsession Factoryで、名前からも衝突を避けました.
以下のように実現します
ビーズプロファイルのコメント
ビーンファイルに注釈を付ける;クラスの上で、使用します.
@Component(「xml中のid」)はビーンを登録することを表します.
@Resource prvate Session Factory sf;外部ファイルに依存していることを表します.
業務対象への依存度は、例えば、epetService;@Resource prvate IPetDao petdao;(setしないで、get方法があります.)
業務操作対象(事務機能を有する事業対象の注釈)
@srping注釈をスキャンする
<context:component-scan base-package="com.my">
context:component-scan>
<tx:annotation-driven transaction-manager="transactionManager"/>
@Repository("name")
(Action)
@Controller
@Service
@Resource(name="")
Bean , name;
name ? type?
,propagation ,
@transactional(propagation=Propagation.required,readonly=true)
@Autowired , @Resource
@Qualifier("name") @Resource(name="name")
ハイベルナーとMyBatisを同時に使用します.
<bean id="dbcp_dateSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}">property>
<property name="url" value="${url}">property>
<property name="username" value="${username}">property>
<property name="password" value="${password}">property>
<property name="defaultAutoCommit" value="false">property>
<property name="initialSize" value="5">property>
bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dbcp_dateSource">
property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">trueprop>
<prop key="hibernate.format_sql">trueprop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialectprop>
props>
property>
<property name="packagesToScan" value="com.my.pet.model">property>
bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">property>
bean>
beans>
コードの中で、Mybatis&Hibernateを同時に実現します.両者の違いはSession工場の違いですので、SpringにSession FactoryBean二つを登録できます.それぞれHibernateとMybatisサービスを聞きます.ちょうど二つのSession工場は違う種類に属しています.一つはsql Session Factoryで、一つはsession Factoryで、名前からも衝突を避けました.
以下のように実現します
@Repository("diaryDao4Hib")
public class DiaryDaoImpl extends SqlSessionDaoSupport implements IDiaryDao {
@Resource
private SessionFactory sessionFactory;
// , , , SqlSessionDaoSupport;
private SqlSessionFacoty sqlSessionFactory;
// dao , sessionFactory; sqlSessionFactory;
/**
*
*/
@Override
public Diary getDairyById(int diaryId) {
return getSqlSession().selectOne("getDiaryById",diaryId);
}
/**
*
*/
@Override
public void addDiary(Diary diary) {
Session session = sessionFactory.getCurrentSession();
session.save(diary);
}
}