Spring常用注解(快速查找),深入分析

  • @JsonSerialize

  • @JsonDeserialize

  • @Transient

  • @JsonIgnoreType

使用注解必须开启注解的支持

// 开启com.yang包下的注解支持

​<context:component-scan base-package=“com.yang”></context:component-scan>

context:annotation-config/

一、Spring常用注解

===========================================================================

@Component:


泛指各种组件 :@Controller、@Service、@Repository

@Controller:


控制层

@Service:


业务层

@Repository:


数据访问层

@Import


要导入到容器中的组件

@ImportSelector:


返回需要导入的组件的全类名数组

@ImportBeanDefinitionRegistrar:


手动注册bean到容器中

@Autowired:


由bean提供,作用在变量、setter方法、构造函数上

@Inject:


由JSR-330提供,用法和@Autowired一样

@Resource:


由JSR-250提供

@Autowired、@Inject是默认按照类型匹配的,@Resource是按照名称匹配的,@Autowired如果需要按照名称匹配需要和@Qualifier一起使用,@Inject和@Name一起使用。

@Primary


让spring进行自动装配的时候,默认使用首选的bean,和@Qualifier一个效果。

@JsonIgnore


在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

@Configuration


声明当前类为配置类;

@Bean


注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式;

@ComponentScan


用于对Component进行扫描;

切面(AOP)相关注解


@Aspect 声明一个切面

@After 在方法执行之后执行(方法上)

@Before 在方法执行之前执行(方法上)

@Around 在方法执行之前与之后执行(方法上)

@PointCut 声明切点

在java配置类中使用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持

@Bean的属性支持


@Scope设置类型包括:

  1. Singleton:单例,一个Spring容器中只有一个bean实例,默认模式
  1. Protetype:每次调用新建一个bean
  1. Request:web项目中,给每个http request新建一个bean
  1. Session:web项目中,给每个http session新建一个bean
  1. GlobalSession:给每一个 global http session新建一个Bean实例

@Value


${}是去找外部配置的参数,将值赋过来

#{}是SpEL表达式,去寻找对应变量的内容

#{}直接写字符串就是将字符串的值注入进去

环境切换


@Profile:指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件。

@Conditional:通过实现Condition接口,并重写matches方法,从而决定该bean是否被实例化。

异步 and 定时任务


  • @EnableAsync:配置类中通过此注解开启对异步任务的支持;
  • @Async:在实际执行的bean方法使用该注解来声明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)
  • @EnableScheduling:在配置类上使用,开启计划任务的支持(类上)
  • @Scheduled:来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)

Enable***注解


  • @EnableAspectAutoProxy:开启对AspectJ自动代理的支持;
  • @EnableAsync:开启异步方法的支持;
  • @EnableScheduling:开启计划任务的支持;
  • @EnableWebMvc:开启web MVC的配置支持;
  • @EnableConfigurationProperties:开启对@ConfigurationProperties注解配置Bean的支持;
  • @EnableJpaRepositories:开启对SpringData JPA Repository的支持;
  • @EnableTransactionManagement:开启注解式事务的支持;
  • @EnableCaching:开启注解式的缓存支持;

测试相关注解


  • @RunWith
运行器,Spring中通常用于对JUnit的支持
  • @ContextConfiguration
用来加载配置配置文件,其中classes属性用来加载配置类。

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {“classpath*: /*.xml”})

public class CDPlayerTest {

}

  • @ContextConfiguration这个注解通常与@RunWith(SpringJUnit4ClassRunner.class)联合使用用来测试。
  • @ContextConfiguration括号里的locations = {“classpath*: /*.xml”}就表示将classpath路径里所有的xml文件都包括进来,自动扫描的bean就可以拿到,此时就可以在测试类中使用@Autowired注解来获取之前自动扫描包下的所有bean。

二、SpringMVC常用注解

==============================================================================

@EnableWebMvc


在配置类中开启Web MVC的配置支持。

@RequestMapping


用于映射web请求,包括访问路径和参数。

@ResponseBody


支持将返回值放到response内,而不是一个页面,通常用户返回json数据。

@RequestBody


允许request的参数在request体中,而不是在直接连接的地址后面。(放在参数前)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

总结

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家

在这里插入图片描述

在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

0j1TSz-1712189362837)]

总结

这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家

[外链图片转存中…(img-QVJoDitz-1712189362838)]

[外链图片转存中…(img-56nPqcxv-1712189362838)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值