Spring(3.2.3)-Bens(8):Annotationによる構成


XMLベースの構成に加え、SpringもAnnotationベースの構成をサポートしています.Springは、普通のSpring Bern@Componentを表示するAnnotationを紹介します.普通のSpring Bern@Controllerを表示します.コントローラのコンポーネント種類を表示します.@Service:ビジネスロジックコンポーネントの種類を表示します.@Repository:DAOコンポーネントの種類を表示します.
 
Annotationベースの構成例
DAOコンポーネント @Repository表記:
public interface UserDao {

    public User getUserByUsername(String username);

}


@Repository(
"userDao") public class UserDaoImpl implements UserDao { List<User> users = new ArrayList<User>(); public UserDaoImpl() { users.add(new User(1001, "huey", "123")); users.add(new User(1002, "tmac", "abc")); users.add(new User(1003, "suer", "xxx")); } public User getUserByUsername(String username) { for (User user : users) { if (username.equals(user.getUsername())) { return user; } } return null; } }
ビジネスロジックコンポーネント @サービスの表示:
public interface UserServ {    

    public User queryUserByUsername(String username);    

}


@Service(
"userServ") public class UserServImpl implements UserServ { @Resource(name="userDao") private UserDao userDao; public User queryUserByUsername(String username) { return userDao.getUserByUsername(username); } }
Springプロファイルは、ビーンを配置する必要はないが、:
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="

        http://www.springframework.org/schema/beans 

        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    

    <!--                 Bean   -->

    <context:component-scan base-package="com.huey.dream" />

</beans>
テスト方法:
@Test

public void testAnnotation() throws Exception {

    ApplicationContext appCtx =  

        new ClassPathXmlApplicationContext("applicationContext.xml");

    UserServ userServ = appCtx.getBean("userServ", UserServ.class);

    

    String username = "huey";

    User user = userServ.queryUserByUsername(username);

    System.out.println(user);

}