2.组件注册-@Configuration&@Bean给容器中注册组件 2.1 创建maven项目 spring-annotation pom.xml文件添加 spring-context 依赖 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId>…
xml配置方式 首先我们创建一个实体类Person public class Person { private String name; private Integer age; private String nickName; // 省略getter and setter ,tostring ,Constructor 1} 以往,我们在spring的配置文件中注册一个bean,采用以下写法: <?xml version="1.0" encoding="UTF-8&qu…
写在前面 在之前的Spring版本中,我们只能通过写XML配置文件来定义我们的Bean,XML配置不仅繁琐,而且很容易出错,稍有不慎就会导致编写的应用程序各种报错,排查半天,发现是XML文件配置不对!另外,每个项目编写大量的XML文件来配置Spring,也大大增加了项目维护的复杂度,往往很多个项目的Spring XML文件的配置大部分是相同的,只有很少量的配置不同,这也造成了配置文件上的冗余. 项目工程源码已经提交到GitHub:https://github.com/sunshinelyz/sp…
1.通过xml定义 <bean class=""> <property name="" value=""></property> </bean> 2.通过注解 这种方式比较常见,通常用@Controller.@Component.@Service等等 3.通过@Bean注解 比如下面的代码往容器中注册一个Person对象 @Bean public Person person(){ return ne…
1.@Bean 导入第三方的类或包的组件 2.包扫描+组件的标注注解(@ComponentScan: @Controller,@service,@Reponsitory,@Componet), 自己写的类 3.@Import[可以快速给容器中导入一个或者多个组件]        1@Import(要导入到容器中的组件):容器中就会自动注册这个组件,id默认是全类名 @Configuration @Import(value = {Student.class,Teacher.class}) publ…
1.包扫描+组件标注注解 使用到的注解如下,主要针对自己写的类 @Controller @Service @Repository @Component @ComponentScan 参考 spring注解开发:ComponentScan组件扫描 2.使用bean注解 主要使用场景:导入第三方包里面的组件,使用到的注解: @Bean 参考:spring注解开发:Configuration&Bean 3.使用@Import注解 使用方式:@Import(要导入到容器中的组件):容器中就会自动注册这个…
写在前面 在前面的文章中,我们学习了如何使用@Import注解向Spring容器中导入bean,可以使用@Import注解快速向容器中导入bean,小伙伴们可以参见<[Spring注解驱动开发]使用@Import注解给容器中快速导入一个组件>.可以在@Import注解中使用ImportSelector接口导入bean,小伙伴们可以参见<[Spring注解驱动开发]在@Import注解中使用ImportSelector接口导入bean>一文.今天,我们就来说说,如何在@Import注…
写在前面 当bean是单实例,并且没有设置懒加载时,Spring容器启动时,就会实例化bean,并将bean注册到IOC容器中,以后每次从IOC容器中获取bean时,直接返回IOC容器中的bean,不再创建新的bean. 如果bean是单实例,并且使用@Lazy注解设置了懒加载,则Spring容器启动时,不会实例化bean,也不会将bean注册到IOC容器中,只有第一次获取bean的时候,才会实例化bean,并且将bean注册到IOC容器中. 如果bean是多实例,则Spring容器启动时,不会…
写在前面 在前面的文章中,我们知道可以通过多种方式向Spring容器中注册bean.可以使用@Configuration结合@Bean向Spring容器中注册bean:可以按照条件向Spring容器中注册bean:可以使用@Import向容器中快速导入bean对象:可以在@Import中使用ImportBeanDefinitionRegistrar向容器中注册bean. 项目工程源码已经提交到GitHub:https://github.com/sunshinelyz/spring-annotat…
给容器中注册组件的方式 1. 组件注解标注 + 包扫描(适用于自己写的类) //控制层组件 @Controller public class PersonController { } //业务逻辑层组件 @Service public class PersonServic { } //持久层组件 @Repository public class PersonDao { } //其他组件 @Component public class Person { } 包扫描(注解或者xml的方式) 1.使用…