spring注解详解2
1.Spring自带的@Component注解及扩展
一@Component:定义Spring管理Bean使用方式如下:
@Component("标识符")
POJO类
在类上使用@Component注解,代表它成了一个组件,如果标识符不写,默认就是类名,一般推荐还是自己写个名字。
定义测试Bean类:
package cn.javass.spring.chapter12;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
@Component("component")
public class TestCompoment {
@Autowired
private ApplicationContext ctx;
public ApplicationContext getCtx() {
return ctx;
}
}
定义测试类和测试方法
package cn.javass.spring.chapter12;
//省略import
public class ComponentDefinitionWithAnnotationTest {
private static String configLocation = "classpath:chapter12/componentDefinitionWithAnnotation.xml";
private static ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation);
@Test
public void testComponent() {
TestCompoment component = ctx.getBean("component", TestCompoment.class);
Assert.assertNotNull(component.getCtx());
}
}
测试成功说明被@Component注解的POJO类将自动被Spring识别并注册到Spring容器中,是自动支持自动装配。
@AspectJ风格的切面可以通过@Component注解标识其为Spring管理Bean,而@AspectJ注解不能被Spring自动识别并注册为Bean,必须通过@Component注解来完成
二,@Repository:@Component扩展,被@Repository注解的POJO类表示DAO层实现,从而见到该注解就想到DAO层实现,使用方式和@Component相同;
1.定义测试Bean类:
package cn.javass.spring.chapter12.dao.hibernate;
import org.springframework.stereotype.Repository;
@Repository("testHibernateDao")
public class TestHibernateDaoImpl {
}
2.定义测试方法:
@Test
public void testDao() {
TestHibernateDaoImpl dao =
ctx.getBean("testHibernateDao", TestHibernateDaoImpl.class);
Assert.assertNotNull(dao);
}
测试成功说明被@Repository注解的POJO类将自动被Spring识别并注册到Spring容器中,且自动支持自动装配,并且被@Repository注解的类表示DAO层实现。
三、@Service:@Component扩展,被@Service注解的POJO类表示Service层实现,从而见到该注解就想到Service层实现,使用方式和@Component相同;
四、@Controller:@Component扩展,被@Controller注解的类表示Web层实现,从而见到该注解就想到Web层实现,使用方式和@Component相同;
上一篇: Spring的注解积累
下一篇: springMVC解决跨域请求