Spring常用注解及作用
@Configuration
它是标注在类上的,被它标注的类就是一个配置类,它的使用就相当于 applicationContext.xml 文件的作用。
@Component
这个注解是让 Spring 容器在加载时自动会添加到容器里面的注解。它也是标注在类上的。它在Spring 容器中就相当于一个 Bean 标签。
@Reponstory
这个注解的作用也 @Component 这个注解的作用和功能一样。但从语义层面来说,这个注解是用于数据访问层,而 @Component 常用于层次不态明确或没有层次的地方。
@Service
这个注解的作用也 @Component 这个注解的作用和功能一样。但从语义层面来说,这个注解是用于业务逻辑层。
@Controller
这个注解的作用也 @Component 这个注解的作用和功能一样。但从语义层面来说,这个注解是用于访问控制层。
@Bean
它是标注在一个方法上的,这个注解可以给它一个 name 属性,用于给这个 Bean 对象取一个唯一的名称,便于调用。如果没有给定 name 属性,那么被这个注解所标注的方法所对应的名称就是方法名称。
@Autowired
这个注解可以添加到成员属性、方法参数、构造方法上。它的作用是把被标注的对象进行自动注入(装配)。被它注解的对象默认是按照类型来自动装配。如果希望按照名称来进行自动装配,那么要接合 @Qualifier 注解一起使用。
@Qualifier
它的作用是配合 @Autowired 注解来按名称进行装配,它不能独立使用。如果希望能够独立使用,则只能放到参数列表中。
@Value
这个注解的作用是对基本数据类型和字符串类型进行注入值。
@ComponentScan
这个注解是用于类上的,它的作用是对指定名路径进行扫描。
@PropertySource
这个注解的作用加载 .properties 文件中的配置。
定义 jdbc.properties 配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=roo
定义配置类:
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.username}")
private String username;
}
@Import
这个注解是用于标注在类上的,作用是导入其它的配置类,它是可以一次导入多个配置类。