您的位置:首页 > 编程语言 > Java开发

springMVC中相关注解

2015-11-23 23:34 447 查看
     在使用spring的项目中,采用注解的方式进行bean的管理还是比较多见的,最近工作中也大量用到,这里记录下来,方便以后加深记忆。

@Autowried
1、@Autowired与@Resource用法基本相同,区别在于@Autowired是默认以类型去查找,而@Resource默认以字段名去查找。@Autowired是spring提供的,而@Resource是j2ee提供的。

@Autowired @Qualifier("personDaoB") 这样即可以按照名称去注入。

@Autowired 与@Resource的区别:
1、 @Autowired与@Resource都可以用来装配bean.
都可以写在字段上,或写在setter方法上。
2、 @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,
通过 @Autowired 对方法或构造函数进行标注,如果构造函数有两个入参,分别是 bean1 和 bean2,@Autowired 将分别寻找和它们类型匹配的 Bean,将它们作为 CountryService (Bean1 bean1 ,Bean2 bean2) 的入参来创建 CountryService Bean。
......
private Builder feignBuilder  ;
@Bean
public Builder feignBuilder(){
return Feign.builder();
}

@Autowired
public void setFeignBuilder(Builder feignBuilder){
this.feignBuilder = feignBuilder;
}


@Bean   参考url:http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch02s02.html

要声明一个bean,只需标注与@Bean注释的方法。当JavaConfig遇到这样的方法,将执行该方法并注册的返回值作为一个BeanFactory中的bean。默认情况下,这个bean的名称与方法名称相同;下面是相关网站截图:



@RunWith(SpringJUnit4ClassRunner.class)

@RunWith就是一个运行器
@RunWith(JUnit4.class)就是指用JUnit4来运行
@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境
JUnit允许用户指定其它的单元测试执行类,只需要我们的测试执行类继承类 org.junit.runners.BlockJUnit4ClassRunner就可以了,Spring的执行类 SpringJUnit4ClassRunner就是继承了该类。我们平时用Spring也比较多,为了能够更加方便的引用配置文件,我们单元测试就使用
了Spring实现的执行类
@ContextConfiguration 
Spring整合JUnit4测试时,使用注解引入多个配置文件
单个文件 @ContextConfiguration(Locations="../applicationContext.xml") @ContextConfiguration(classes = SimpleConfiguration.class)
多个文件时,可用{} @ContextConfiguration(locations = { "classpath*:/spring1.xml", "classpath*:/spring2.xml" })

使用 @Repository、@Service、@Controller 和 @Component 将类标识为 Bean

@Service用于标注业务层组件,
@Controller用于标注控制层组件(如struts中的action),
@Repository用于标注数据访问组件,即DAO组件,
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

Spring2.5为我们引入了组件自动扫描机制,他可以在类路径底下寻找标注了 @Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。

通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring 会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring 受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。

@PostConstruct 和 @PreDestroy

Spring 2.5 在保留以上两种方式的基础上,提供了对 JSR-250 的支持。JSR-250 规范定义了两个用于指定声明周期方法的注解:@PostConstruct 和 @PreDestroy。这两个注解使用非常简单,只需分别将他们标注于初始化之后执行的回调方法或者销毁之前执行的回调方法上。由于使用了注解,因此需 要配置相应的
Bean 后处理器,亦即在 XML 中增加如下一行:
 <context:annotation-config />
@PropertySource   @PropertySource(value = "classpath:/META-INF/properties/openstacki.properties")
java类中指定加载文件,在类属性中通过@Value进行获取相关值;   
@Value("${openstack.service.retry.period}")
protected Integer service_retry_period;
这里的'openstack.service.retry.period'
是读取配置文件openstacki.properties文件中'openstacki.properties'值,并将该值赋值给类中service_retry_period属性;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: