代码编织梦想

Spring注解

Q:什么是基于Java的Spring注解配置? 给一些注解的例子?

 

  基于Java的配置,允许你在少量的Java注解的帮助下,进行你的大部分Spring配置而非通过XML文件。

 

  @Configuration:用来标记类可以当做一个<beans></beans>的定义,被Spring IOC容器使用。

 

  @Bean注解:表示此方法将要返回一个对象,作为一个bean注册进Spring应用上下文。

 

Q:怎样开启注解装配?

 

  注解装配在默认情况下是不开启的,为了使用注解装配,我们必须在Spring配置文件中配置 <context:annotation-config/>元素。

 

Q:@Required 注解

 

  这个注解表明bean的属性必须在配置的时候设置,通过一个bean定义的显式的属性值或通过自动装配,若@Required注解的bean属性未被设置,容器将抛出BeanInitializationException。

 

Q:@Autowired 注解

 

  @Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多个参数的PN方法。

 

Q:@Qualifier 注解

 

  当有多个相同类型的bean却只有一个需要自动装配时,将@Qualifier 注解和@Autowire 注解结合使用可以消除这种混淆。

 

  原理:指定需要装配的确切的bean的name属性,此时相当于按照name进行装配。

 

Q:@AutoWired和@Resource的区别

 

  @AutoWired默认以类型进行查找,@Resource默认以名称进行查找 

 

  @AutoWired(required=false) + @Qualifier("user") == @Resource(name="user")

 

Q:@Component和@Bean的区别是什么

作用对象不同。@Component注解作用于类,而@Bean注解作用于方法。

@Component注解通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中(我们可以使用@ComponentScan注解定义要扫描的路径)。@Bean注解通常是在标有该注解的方法中定义产生这个bean(即方法需要返回一个Bean给Spring容器),告诉Spring这是某个类的实例,当我需要用它的时候还给我。

@Bean注解比@Component注解的自定义性更强,而且很多地方只能通过@Bean注解来注册bean。比如当引用第三方库的类需要装配到Spring容器的时候,就只能通过@Bean注解来实现。

Q:声明为Bean的注解有哪些

@Component注解。通用的注解,可标注任意类为Spring组件。如果一个Bean不知道属于哪一个层,可以使用@Component注解标注。

@Repository注解。对应持久层,即Dao层,主要用于数据库相关操作。

@Service注解。对应服务层,即Service层,主要涉及一些复杂的逻辑,需要用到Dao层(注入)。

@Controller注解。对应Spring MVC的控制层,即Controller层,主要用于接受用户请求并调用Service层的方法返回数据给前端页面。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_71819778/article/details/128859405

从controller注解切入了解spring注解原理_jack_wang001的博客-爱代码爱编程

Spring容器框架包org.springframework.stereotype下Controller注解接口源代码如下: @Target({java.lang.annotation.ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component pub

spring注解,springmvc注解,springboot注解,springcloud注解大全-爱代码爱编程

Spring注解 import org.springframework.beans.factory.annotation.*;   @Autowired @Quailfier @Required @Value @Aotowired 和 @Qualifire 该注解支持set方式注入和构造器方式注入. 当采用set方式注入时,可以将@Aut

Spring注解怎么起作用!!-爱代码爱编程

一直以来,我都非常好奇这个spring注解是如何起作用的,为什么一个@Autowired注解就可以实现属性的注入,为啥@NotNull就可以对属性进行非null的判断。它的实现过程的是什么呢? 起初我想的是,注解嘛,实现过程肯定在注解里面,于是我ctrl + 左键点到注解里面去,我去,是个接口一样的东西,就像下面这样: 关键我也看不懂那是啥呀??我就看到的

Spring注解@Autowired-爱代码爱编程

Spring注解@Autowired 一、@Autowired注解作用 1、@Autowired 注解@Autowired是Spring对组件自动装配的一种方式。常用于在一个组件中引入其他组件。 //引入Person组件 @Autowired Person person; 自动装配:sprng通过依赖注入(DI),完成IOC容器中各个组件依赖的

spring注解:spring aop注解详解-爱代码爱编程

一、 AOP的基本概念 Aspect(切面):通常是一个类,里面可以定义切入点和通知Pointcut(切点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturni

Spring注解事务失效原因-爱代码爱编程

整理了一下Spring事务失效的原因,希望帮到有缘人。 原因一:没有开启事务管理 原因二:标注了@Transactional的方法里面的异常被捕获了 原因三:标注了@Transactional的方法发生了非Error 或者 非RuntimeException 原因四:标注了@Transactional的方法的事务传播类型propagation配置成了NO

Dubbo使用Spring注解,兼容Feign-爱代码爱编程

一、引言 现在Dubbo服务提供端和调用端采用的注解分别为@DubboService、@DubboReference,如果因架构调整,Dubbo调用要改为Feign调用,则改动量较大,需要替换每一处注解,代码耦合较深。因而想要采用Spring注解,来替换Dubbo的注解,依然能够实现dubbo方式调用,这样修改调用方式时,代码就无需变动了。 二、具体实

spring注解方式完成参数校验-爱代码爱编程

参考:https://blog.csdn.net/MrHamster/article/details/118522375 使用前加入依赖 pom: <dependency> <groupId>org.springframework.boot</groupId> <

Spring 注解-包扫描-爱代码爱编程

4、包扫描 只要标注了@Controller、@Service、@Repository、@Component的,都会被扫描加入到容器里 **注意:**配置类自身也会被扫描到容器中,如果存在多个配置类,则多个配置类里的所有bean对象都会被扫描进容器中 4.2、注解扫描 在配置类上添加注解@ComponentScan @Configuratio

spring注解和xml冲突问题_何妨徐行的博客-爱代码爱编程

两个实体类的情况下,xml和注解直接使用且名称相同 当出现两个相同名称实例,spring会覆盖其中一个,xml优先级高于注解;xml中同时配置两个相同id的bean,直接校验不通过报错。 例子:有两个同名实体类Car xml <bean id="car" class="com.qcby.service.Car"> &l