@Component :组件,放在类上,表示这个类被Spring容器接管了。相当于在配置文件中写
<bean id="xxxx" class="这个类的全类名"/> 默认的id为该类名的首字母小写,也可以指定 value = "xxxx"。
@Repository :上边个注解的衍生注解,用来标注在数据访问层,也可以指定id。这个注解底层也使用了@Component。默认使用该类名首字母小写来作为id值。
@Controller : @Component 的衍生注解,用来标注在控制器层,也可以指定id。这个注解底层也使用了@Component。默认使用该类名首字母小写来作为id值。
@Service : @Component 的衍生注解,用来标注在业务逻辑层,也可以指定id。这个注解底层也使用了@Component。默认使用该类名首字母小写来作为id值。
以上几个注解作用都是一样的,都是将类交给Spring容器管理。
@Param("**") : 这个注解是在Mybatis中使用的,用来给映射文件绑定的方法的参数列表设置别名。
@ResponseBody :在SpringMVC中,如果方法加了这个注解,表示这个方法不经过视图解析器了,直接返回给前端。这个主要在用来做前后端分离的时候使用。
@Scope("singleton") : 这个注解表示设置该类为单例模式,prototype表示原型模式。相当于bean标签中的scope属性
<bean id="user" scope="prototype"/>
@Value :这个注解是用在属性上的,对属性值的注入。(对复杂类型的属性不能做,属性是实体类需要用其它的注解)
@Configuration : 这个注解是用来标注在一个普通类上的,用来标识这个类是一个配置文件类,用来取代Spring配置文件的。
@ComponentScan : 用在使用Java代码来取代配置文件的时候,用来指定要扫描的包,使用注解开发的时候。类似的还有@ComponentScans
@Bean : 这个注解是在使用Java代码来替代Spring映射文件的时候,用来注入bean的。
总结,xml与注解:
xml更加万能,适用于任何环境,维护简单方便,但是如果配置的bean太多会很臃肿。
注解虽然方便,但是不好维护,相对于xml而言。
建议,xml文件来管理bean,注解用来完成属性值的注入。
注意,要使用注解,必须导入约束,开启注解支持,配置扫描路径。一个都不能少。