1.使用Spring註解需要在applicationContextx.xml 加入此標籤<context:component-scan base-package="com.bjsxt"></context:component-scan>這個標籤的意思是聲明可以使用註解的包,base-package="你的包的名字";
2.使用在類聲明上的註解有:Dao層@Repository Service層@Service Action層@Controller("testAction") 其中Dao層必須使用@Repository 否則會出現sessionFactory初始化失敗的異常。在類聲明上寫上@Repository或者 @Service或者@Controller("testAction") 就相當於是在applicationContextx.xml中寫了
<bean id="clazzService" class="包名加類名" />這樣一句話
package com.bjsxt.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.bjsxt.dao.ClazzDao;
@Service("clazzService")
public class ClazzService
{ @Resource(name="clazzDao")
private ClazzDao clazzDao;
public void test()
{
System.out.println("clazzDao");
}
}
3.使用在類中屬性聲明上的註解:@Resource(name="clazzService") 這一句話就相當於是在applicationContextx.xml中寫了<property name="clazzService" ref="clazzService"/>
需要注意的是@Resource(name="clazzService") name的值必須是你上面寫過的@Service("clazzService")中的值。
package com.bjsxt.action;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.bjsxt.service.ClazzService;
import com.bjsxt.service.StudentService;
@Controller("testAction")
public class TestAction
{ @Resource(name="clazzService")
private ClazzService clazzService;
@Resource
private StudentService stuService;
}
4.測試類public class autoWriteTest
{
@Test
public void autoWrite()
{
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
TestAction testAction = (TestAction)ac.getBean("testAction");
testAction.getClazzService().testt();
}
}
5.輸出結果
//clazzDao