Spring注解 @Configuration 一.@Configuration的作用 二....@Configuration的Spring容器启动方式 三.不加@Configuration的@Bean的解析 四.加@Configuration的@Bean的解析 五.总结与疑问 一.注解作用...注解形式的Spring容器的启动方式(非Web项目) 方式1....分析不加@Configuration 只是一个启动类就可以解析@Bean注解 3.1 简单绘制下我理解的Spring容器bean的初始化流程:1-2是Spring容器初始化经历的过程,而3-9则是每一个...AppConfig1类的@Bean注解的@Bean也注册到Spring容器中了; 结束postProcessBeanDefinitionRegistry 方法时候打印下已经注册的BeanDefinition
使用场景: 此注解的使用场景非常之多,在实际开发中应用广泛。通常情况下我们自己写的类中注入依赖bean对象时,都可以采用此注解。...当和spring整合之后,spring框架提供了一个JmsTemplate对象,它既可以用于发送点对点模型消息也可以发送主题模型消息。...5.注解的target的区分 注解 target 依赖 @Retention(保留多久,SOURCE,CLASS,RUNTIME) 元 @Target(注解作用目标)TYPE,允许在类,接口,枚举上FIELD...在注解中默认值是“”。 ...Spring高级-IOC的深入剖析 1.Spring中的BeanFacotry 1.1BeanFactory类视图 2.2.2说明 现实中的容器都是用来装物品的,Spring的容器也不例外,这里的物品就是
使用场景: 此注解的使用场景非常之多,在实际开发中应用广泛。通常情况下我们自己写的类中注入依赖bean对象时,都可以采用此注解。...当和spring整合之后,spring框架提供了一个JmsTemplate对象,它既可以用于发送点对点模型消息也可以发送主题模型消息。...5.注解的target的区分 注解 target 依赖 @Retention(保留多久,SOURCE,CLASS,RUNTIME) 元 @Target(注解作用目标) TYPE,允许在类,接口,枚举上...在注解中默认值是“”。...Spring高级-IOC的深入剖析 1.Spring中的BeanFacotry 1.1BeanFactory类视图 2.2.2说明 现实中的容器都是用来装物品的,Spring的容器也不例外,这里的物品就是
1 @ControllerAdvice 拦截异常并统一处理 在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder...CookieStoreDaoImpl implements CookieStoreDao{ } 4 @EnableAsync 异步执行,也就是开启多线程 5 @Qualifier 当一个接口有两个实现时使用@Qualifier注解来区分...6 @Slf4j 声明:如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;
@ @Qualifier 注释指定注入 Bean 的名称 作用 @Primary 当一个接口有多个实现的时候 优先选择哪个注解bean进行注入 public interface Singer {...String sing(String lyrics); } #一种实现方式 @Component // 加注解,让spring识别 public class MetalSinger implements...main.service.Singer] is defined: expected single matching bean but found 2: metalSinger,operaSinger 提示很明确了,spring...: "+lyrics; } } 如果代码改成这样,再次运行,结果如下: "I am singing in Bocelli voice: song lyrics", 用@Primary 告诉spring...调用 @RefreshScope 在需要自动更新配置变量的Java类上,使用注解 @RefreshScope 修饰。
1.注解 @Controller控制器定义 和Struts1一样,Spring的Controller是Singleton的。这就意味着会被多个请求线程共享。...在spring 3.0中,通过@controller标注即可将class定义为一个controller类。...为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义: 3 **********${sessionScope.u.uname} 4 注:名字为”user”的属性再结合使用注解...@ModelAttribute 这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。
当 Spring遇到一个在 setter 方法中使用的 @Autowired 注解,它会在方法中执行 byType 自动装配。...没有加@Component注解 在类上面忘了加@Controller、@Service、@Component、@Repository等注解,spring就无法完成自动装配的功能,例如: public class...注解扫描,收集元数据的。...但是,如果没有加@ComponentScan注解,或者@ComponentScan注解扫描的路径不对,或者路径范围太小,会导致有些注解无法收集,到后面无法使用@Autowired完成自动装配的功能。...@Autowired是spring定义的注解,而@Resource是JSR-250定义的注解。 此外,它们的装配顺序不同。
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 进行本示例的演示,需要先配置好Maven和Spring哦、 见: 【...Spring】基于IntelliJ IDEA搭建Maven 分析 所谓的元注解: 其实就是可以注解到别的注解上的注解。...而被注解的注解我们就称之为组合注解。(仔细理解,可能有点绕) 组合注解同时具备元注解的功能! Spring的很多注解都可以作为元注解,而且Spring本身已经有很多组合注解。...,这个时候,我们就可以考虑将这几个注解到别的注解上。...比如下面的示例就是将@Configuration和@ComponentScan注解到一个注解上! 这样,我们就可以用一个注解来表示这两个注解。
Spring 框架中有很多可用的注解,其中有一类注解称模式注解(Stereotype Annotations),包括 @Component, @Service,@Controller,@Repository...这样一来不同模式注解带来了不同的含义,清晰将服务进行分层。 除了上面的作用,特定的模式注解,Spring 可能会在未来增加额外的功能语义。...模式注解原理 在 Spring 中任何标注 @Component 的组件都可以成为扫描的候选对象。...AnnotationMetadata 从上面文档看出只要在类上存在 @Component注解,即使存在于注解的注解上,Spring 都将能其成为候选组件。...注解上的注解 Spring 将其定义为元注解(meta-annotation),如 @Component标注在 @Service上,@Component 就被称作为元注解。
在展现层使用,控制器的声明(C) 2.注入bean的注解 @Autowired:由Spring提供 @Inject:由JSR-330提供 @Resource:由JSR-250提供 都可以注解在set方法和属性上...3.java配置类相关注解 @Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上) @Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式...xml中的(类上) @WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,可以替代这两个注解 4.切面(AOP)相关注解 Spring支持AspectJ...(类或方法上) @Conditional Spring4中可以使用此注解定义条件话的bean,通过实现Condition接口,并重写matches方法,从而决定该bean是否被实例化。...@EnableTransactionManagement 开启注解式事务的支持 @EnableCaching 开启注解式的缓存支持 11.测试相关注解 @RunWith 运行器,Spring中通常用于对
spring开发中常用到的注解 @PostConstruct 在bean初始化之后调用方法,可以用@PostConstruct标识该方法 @PreDestory 在bean被销毁前调用该方法...,可以通过容器获得 @Service 注解声明的类,将会添加到容器中,可以通过容器获得。...@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的id,而type属性则解析为bean的类型。...如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常 2....: @interface Name {} @Rentention 该注解的保留级别(该注解在什么时候是可见的) @Target 设定注解的使用范围 @Inherited 该如果一个注解被用在
@Bean的属性支持 @Bean(initMethod = "",destroyMethod = "") @Scope 设置Spring容器如何新建Bean实例(方法上,得有@Bean) @Lazy...@Autowired:由Spring提供,按类型装入 @Qualifier:指定组件id,而不是按照类型注入 @Primary:指定自动装配的首选 @Inject:由JSR-330提供 @Resource...Spring对AspectJ代理的支持(类上) 7.环境切换 @Profile:通过设定配置环境 @Conditional:实现Condition接口,从而决定该bean是否被实例化 8.异步相关 @...@EnableCaching:开启注解式的缓存支持 11.测试相关注解 @RunWith:运行器,Spring中通常用于对JUnit的支持 @RunWith(SpringJUnit4ClassRunner.class...>spring-boot-configuration-processor 1.
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。...(把普通pojo实例化到spring容器中,相当于配置文件中的) @Autowired与@Resource都可以用来装配bean。 都可以写在字段上,或写在setter方法上。...@Autowired默认按类型装配(这个注解是属业spring的) @Resource(这个注解属于J2EE的) @RestController @ResponseBody和@Controller的合集...也是注解在类上面的,声明这是个配置作用的bean,替代xml配置 @EnableCaching 标注启动缓存....提供的新注解,从名字上可以看出大体意思是控制器增强 @ExceptionHandler 异常拦截 @Value 注入Spring boot application.properties配置的属性的值。
未添加注解,且未使用xml装配,会导致应用找不到bean。...三、通过注解使用bean @Autowired、@Resource、@Inject区别 这三个注解都是用以注入bean对象,@Autowired默认按类型注入,要用以按类型注入,需要结合@Qualifier...(name)注解一起使用;@Resource默认按属性name值(=bean的id)注入;@Inject与@Autowired相近,默认按type注入。...(参考:http://www.tuicool.com/articles/ruaMBn) @Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name...如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常 2.
本文链接:https://blog.csdn.net/weixin_44580977/article/details/96871985 在使用注解之前要 在 xml里面配置 <?...--告知spring在创建容器时要扫描的包,配置所需要的标签不是在beans的约束中,而是一个名称为 context名称空间和约束中--> <context:component-scan...* 他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰 * Bean:万能注解 * * 用于注入数据的 * 他们的作用就和在xml配置文件中的...* 以上三个注入都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现。 * 另外,集合类型的注入只能通过XML来实现。...它可以使用spring中SpEL(也就是spring的el表达式) * SpEL的写法:${表达式} * * 用于改变作用范围的 * 他们的作用就和在
spring开发中常用到的注解 @PostConstruct 在bean初始化之后调用方法,可以用@PostConstruct标识该方法 @PreDestory 在bean被销毁前调用该方法,可以用@PreDestory...@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的id,而type属性则解析为bean的类型。...如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常 2....: @interface Name {} @Rentention 该注解的保留级别(该注解在什么时候是可见的) @Target 设定注解的使用范围 @Inherited 该如果一个注解被用在A类上,B类继承.../shuimuzhushui/p/6791600.html spring-mvc 1、使用@Controller注解,必须添加配置: `<!
相比起之前使用xml来配置Spring框架,使用注解提供了更多的控制Spring框架的方式。...现在,越来越多的项目都在使用注解做相关的配置,但Spring的注解非常多,相信很多人对这些注解并没有一个很全面的了解,很多都没有使用过。本文就尽量全面地介绍Spring中常用的注解,并做简单介绍。...此外,在Spring4.3后,如果一个类仅仅只有一个构造方法,那么即使不使用此注解,那么Spring也会自动注入相关的bean。...@Configuration注解一起使用,指定Spring扫描注解的package。...@Lazy 此注解使用在Spring的组件类上。默认的,Spring中Bean的依赖一开始就被创建和配置。
return "BookDao [lable=" + lable + "]"; } } MainConifgOfAutowired /** * 自动装配; * Spring...4)、自动装配默认一定要将属性赋值好,没有就会报错; * 可以使用@Autowired(required=false); * 5)、@Primary:让Spring...* BookService{ * @Autowired * BookDao bookDao; * } * * 2)、Spring...还支持使用@Resource(JSR250)和@Inject(JSR330)[java规范的注解] * @Resource: * 可以和@Autowired一样实现自动装配功能...Autowired Car car){ this.car = car; System.out.println("Boss...有参构造器"); } * * 4)、自定义组件想要使用Spring
Spring基础注解 1.1.1....@ComponentScan 组件扫描注解,通过配置包、类、过滤器来扫描指定的类到spring上下文容器中,该注解在jdk8以后可以在同一个类上注解多个,可以通过basePackages、excludeFilters...@Scope 常用于bean作用域于注解,定义Spring容器创建实例的方式。...@Value/@PropertySource/@ImportResource/@ConfigurationProperties 使用这几个注解需要使用@Component 注解(标记是Spring的组件...步骤 1)、将业务逻辑组件和切面类都加入到容器中;告诉Spring哪个是切面类(@Aspect) 2)、在切面类上的每一个通知方法上标注通知注解,告诉Spring何时何地运行(切入点表达式) 3)、
用注解来向Spring容器注册Bean。 ...当不明确这个类属于那个层的时候,可以使用@Component进行标注,但不建议使用 5:@Autowired 属性加上@Autowired后不需要getter()和setter()方法,Spring...@Autowired(required=false)表示,如果spring上下文中没有找到该类型的bean时,才会使用new ServiceImpl(); 6:@Qualifier 当接口存在两个实现类的时候必须使用...@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。...@Resource装配顺序 1).如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常 2) 如果指定了name,则从上下文中查找名称(id
领取专属 10元无门槛券
手把手带您无忧上云