将实体类存入Spring的IOC容器:
@Component:用于创建对象的,作用于类。
value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写。
@Controller:一般用于表现层的注解。
@Service:一般用于业务层的注解。
@Repository:一般用于持久层
@Bean
作用:用于把当前方法的返回值作为bean对象存入Spring的IOC容器中
属性:name:用于指定bean的id。当不写时,默认值是当前方法的名称
当我们使用注解配置方法时,如果方法有参数,Spring框架会去容器中查找有没有可用的bean对象。
查找方式和Autowired注解的作用是一样的。
用于注入数据的:
@Autowired:
自动按照类型注入。当使用注解注入属性时, set 方法可以省略。它只能注入其他 bean 类型。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到就报错。
@Qualifier:
作用:在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。它在给字段注入时不能独立使用,必须和@Autowired 一起使用;但是给方法参数注入时,可以独立使用 属性:value:指定 bean 的 id
@Resource: 作用:直接按照 Bean 的 id 注入。它也只能注入其他 bean 类型。 属性:name:指定 bean 的 id。 @Value: 作用:注入基本数据类型和 String 类型数据的 属性:value:用于指定值
改变作用范围的:
@Scope:
作用:指定 bean 的作用范围。 属性:value:指定范围的值。 取值:singleton(单例的) prototype(多例的) request(每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。) session (在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。) globalsession(在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。) 缺省的Spring bean 的作用域是Singleton.
和生命周期相关的:
@PostConstruct: 作用:用于指定初始化方法 @PreDestroy 作用:用于指定销毁方法
配置类相关:
@Configuration: 作用:用于指定当前类是一个 spring 配置类, 当创建容器时会从该类上加载注解。 获取容器时需要使用 AnnotationApplicationContext(有@Configuration 注解的.class)。 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。 @ComponentScan 作用:用于指定 spring 在初始化容器时要扫描的包。 作用和在 spring 的 xml 配置文件中的: <context:component-scan base-package=“com.itheima”/>是一样的。 属性:basePackages:用于指定要扫描的包。和该注解中的 value 属性作用一样。 @Import 作用:用于导入其他的配置类 属性:value:用于指定其他配置类的字节码。 当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类 @PropertySource 作用:用于指定properties文件的位置 属性: value:指定文件的名称和路径。 关键字:classpath,表示类路径下
Spring 整合 Junit:
当我们使用spring 5.x版本的时候,要求junit的jar必须是4.12及以上 @RunWith(SpringJUnit4ClassRunner.class):使用@RunWith 注解替换原有运行器 @ContextConfiguration(locations= {“classpath:bean.xml”}): locations 属性: 用于指定配置文件的位置。如果是类路径下,需要用 classpath:表明 classes 属性: 用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置。 @Autowired:使用@Autowired 给测试类中的变量注入数据