Spring 3のIOCのannotation学習ノート
7263 ワード
以下に小さなSpring 3のannotationの応用ノートを記録します.
ファイルリスト:
UserService-interface
UserDao-interface
UserServiceImpl-UserServiceインタフェースの実装
UserDaoImpl-UserDaoインタフェースの実装
User-エンティティークラス
1.UserServiceImplの@Serviceの文字列はgetBeanの文字列と一致する必要があります.
2.UserDaoImplの@Repositoryのパラメータと、UserServiceImplのSetterメソッドの@Autowired@Qualifier(「daoパラメータ」)一致
3.構成ファイルで注記のサポートを開始するには:
*1.コンフィギュレーションファイルでcontextネーミングスペースを開くサポート:タグに追加:<1>追加【xmlns】:【xmlns:context=”http://www.springframework.org/schema/context""<<2>加入【xsi:schemaLocation】:【http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd】 *2.プロファイルで注釈サポートを開く:
*3.があるので、は省くことができます.
まとめ:
1.
2.
3.
ファイルリスト:
UserService-interface
UserDao-interface
UserServiceImpl-UserServiceインタフェースの実装
UserDaoImpl-UserDaoインタフェースの実装
User-エンティティークラス
package com.niewj.model;
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.niewj.service;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import com.niewj.dao.LogDao;
import com.niewj.dao.UserDao;
import com.niewj.model.User;
@Service("userServiceImplementation")
// @Component/@Repository/@Controller/@Service
@Scope("singleton")
// @Scope("prototype")
public class UserServiceImpl implements UserService {
// , setter 。
/* @Autowired
@Qualifier("userDaoImplementation")*/
//@Resource(name="userDaoImplementation")// , setter , , byType 。
private UserDao uuuserDao;
private LogDao logDao;
public UserDao getUuuserDao() {
return uuuserDao;
}
/*
@Autowired// (required=false)
@Qualifier("userDaoImplementation")// id/name
*/
@Resource(name="userDaoImplementation")
public void setUuuserDao(UserDao uuuserDao) {
this.uuuserDao = uuuserDao;
}
public LogDao getLogDao() {
return logDao;
}
@Autowired
public void setLogDao(LogDao logDao) {
this.logDao = logDao;
}
@Override
public boolean regist(User user) {
logDao.log();
return uuuserDao.save(user);
}
}
package com.niewj.dao;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.springframework.stereotype.Repository;
import com.niewj.model.User;
/* @Repository/@Controller/@Service @Component, 、 、 Dao */
@Repository("userDaoImplementation")
public class UserDaoImpl implements UserDao {
@PostConstruct// <bean init-method="init">
public void init(){
System.err.println(" DAO , 。");
}
@PreDestroy// <bean destroy-method="destroy">
public void destroy(){
System.err.println(" DAO , 。");
}
@Override
public boolean save(User user) {
System.err.println(" :" +user.getName());
return true;
}
}
package com.niewj.dao;
import org.springframework.stereotype.Repository;
@Repository("logDao")
public class LogDaoImpl implements LogDao {
@Override
public void log() {
System.out.println("Logging...... ............OK");
}
}
package com.niewj;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.niewj.model.User;
import com.niewj.service.UserService;
import com.niewj.service.UserServiceImpl;
public class AnnotationTest {
@Test
public void testIocAnnotation() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService loginService = ac.getBean("userServiceImplementation", UserServiceImpl.class);
User user = new User();
user.setName("dotjar");
loginService.regist(user);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<import resource="beans.xml" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- Annotation context:component-scan -->
<!-- <context:annotation-config /> -->
<context:component-scan base-package="com.niewj">
</context:component-scan>
</beans>
1.UserServiceImplの@Serviceの文字列はgetBeanの文字列と一致する必要があります.
2.UserDaoImplの@Repositoryのパラメータと、UserServiceImplのSetterメソッドの@Autowired@Qualifier(「daoパラメータ」)一致
3.構成ファイルで注記のサポートを開始するには:
*1.コンフィギュレーションファイルでcontextネーミングスペースを開くサポート:
*3.
まとめ:
1.
@Repository/@Controller/@Service @Component, 、 、 Dao
2.
@Resource(name="userDaoImplementation")// name , setter , byName , byType 。
3.
@Autowired // byType
@Qualifier("userDaoImplementation") //byName, @Autowired 。