SSM(Spring SpingMVC Mybatis)框架常用注解

2024-02-25 17:58

本文主要是介绍SSM(Spring SpingMVC Mybatis)框架常用注解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SSM常用注解

  • 1.Spring Boot的常用的注解
    • @SpringBootApplication
    • @EnableConfigurationProperties和@ConfigurationProperties
  • 2.Spring的常用注解
    • @ComponentScan
    • @Service
    • @Repository
    • @Component
    • @Autowire
    • @Qualifier
    • @Resource
    • @Bean
  • 3.springmvc的常用注解
    • @Controller
    • @ResponseBody
    • @RestController
    • @RequestMapping
    • @PathVariable
    • @RequestParam
    • @RequestBody
    • @ResponseBody
    • @GetMapping
    • @PostMappding
  • 4. 其他常用注解
    • @Resource
    • @PostConstruct
    • @PreDestroy

1.Spring Boot的常用的注解

@SpringBootApplication

此注解是Sprnig Boot项目的核心注解,目的是开启自动配置

@EnableConfigurationProperties和@ConfigurationProperties

属性注入

将属性配置注入到Spring 的Bean中,在很多中间件中都需要去定义一些属性的,方式总共有四种:

第一种方式,@ConfigurationProperties 和 @Component 搭配使用,属性需要在 application.yml 中进行配置;

@ConfigurationProperties(prefix = "person")
@Component
public class Person {private Integer id;private String name;private List<String> interests;// setter and getter 
}
# yaml 文件中内容
person:id: 10name: 李四interests:- movie- sport- read

第二种方式,@ConfigurationProperties 和 @EnableConfigurationProperties 搭配使用,但是要注意以下两点:

  1. @EnableConfigurationProperties 需要放在一个被纳入到 IOC 容器的Bean的头顶;
  2. @EnableConfigurationProperties 和 @ConfigurationProperties 不是在一起使用的;
  3. @EnableConfigurationProperties 的值是头顶加了 @ConfigurationProperties 这个类的 Class 类型的对象
@ConfigurationProperties(prefix = "person")
public class Person {private Integer id;private String name;private List<String> interests;// setter and getter 
}
@SpringBootApplication
@EnableConfigurationProperties(Person.class)
public class FirstSpringBootApplication {   // FirstSpringBootApplication也会被纳入到IOC容器中public static void main( String[] args) {/*** 启动springboot的项目,第一个参数是标注了 @SpringBootApplication 这个注解的类型*/SpringApplication.run(FirstSpringBootApplication.class, args);}
}
# yaml 文件中内容
person:id: 10name: 李四interests:- movie- sport- read

第三种方式,@PropertySource(“classpath: /config.properties”) 和 @Component 搭配使用,然后属性要使用 @Value 实现注入

@PropertySource(value="classpath:/config.properties", encoding = "utf-8")
@Component
public class User {@Value("${user.id}")private Integer id;@Value("${user.nickname}")private String name;@Value("${user.interests}")private List<String> interests;// 
}

第四种方式,@PropertySource 和 @ConfigurationProperties 、@Component 搭配使用,@PropertySource来指定外部资源; @ConfigurationProperties 指定前缀。不需要使用 @Value 来实现属性的注入

@PropertySource("classpath:/config.properties")
@ConfigurationProperties(prefix = "wx")
@Component
public class Pay {private String appKey;private String tradeId;// setter and getter 
}

2.Spring的常用注解

@ComponentScan

@ComponentScan这个注解在Spring中很重要,它对应XML配置中的元素,@ComponentScan的功能其实就是自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。
我们可以通过basePackages等属性来细粒度的定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。

@Service

这个注解放到 Serviece 的实现类上。

@Repository

这个注解放到 DAO 的实现类上。

@Component

遇到性质不明确的类的时候,就加上该注解。

@Autowire

(纳入IOC容器)首先根据类型查找,如果多个,就看谁的头顶的有 @Primary,就注入谁;如果没有没有@Primary 注解,就按照名字来进行注入,如果名字都没有区分就报异常。

@Qualifier

它的出现就是为了和 @Autowire 搭配使用的,就是指定一个名字,在注入的时候根据类型的时候同时判断名字来实现注入,无视名字和@Primary注解,只根据@Qualifier来创建。

@Resource

首先根据名字来实现注入,如果命名没有相同,就根据类型查找,如果类型有多个,就看谁的大头顶有 @Primary 注解,名字优先于@Primary。

@Bean

@Bean 用在方法上,告诉Spring容器,你可以从下面这个方法中拿到一个Bean

3.springmvc的常用注解

@Controller

@Controller表示在服务器启动的时候,把这个类作为一个控制器加载到Spring的Bean工厂,加上了这个注解的类就相当于以前的一个servlet层的类,主要负责处理前端控制器(DispatcherServlet )发过来的请求,经过业务逻辑层处理之后封装层一个model,并将其返回给view进行展示。

@ResponseBody

此注解的主要作用就是返回给前端的数据全为json数据

@RestController

@RestController注解里面包含了@Controller注解和@ResponseBody注解

@RequestMapping

此注解是一个用来处理请求地址映射的注解(设置一个前端可访问的域名后缀),它可以用于类上,也可以用于方法上。用于类上的注解会将一个特定请求或者请求模式映射到一个控制器之上,表示类中的所有响应请求的方法都是以该地址作为父路径;方法的级别上注解表示进一步指定到处理方法的映射关系。

@PathVariable

此注解主要用来获取 URL 参数,如:

http://localhost:8080/login?username=zhangsan&password=123

@RequestParam

此注解主要用来获取 URL 参数,如:

http://localhost:8080/login/zhangsan/123

@RequestBody

此注解用于形参列表中,目的是将前端转换的json数据转换为一个实体类,这种类一般放在dto包中

@ResponseBody

词注解用于方法上,目的是返回给前端的数据为json数据

@GetMapping

注解用于 GET 请求上,接收 JSON 实体参数,设置后置域名

@PostMappding

注解用于 POST 请求上,接收 JSON 实体参数,设置后置域名

4. 其他常用注解

@Resource

首先根据名字来实现注入,如果命名没有相同,就根据类型查找,如果类型有多个,就看谁的大头顶有 @Primary 注解,名字优先于@Primary。

@PostConstruct

对应着 init-method 这个配置的一个注解,是spring bean的生命周期的一个注解。在Spring中碰到方法名或者注解中带有 Post, 表示在XXXX之后。

@PreDestroy

对应着destroy-method这个配置的一个注解,销毁的时候执行的方法。在Spring中碰到方法名或者注解中带有 Pre, 表示在XXXX之前。

这篇关于SSM(Spring SpingMVC Mybatis)框架常用注解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746243

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Java中如何正确的停掉线程

《Java中如何正确的停掉线程》Java通过interrupt()通知线程停止而非强制,确保线程自主处理中断,避免数据损坏,线程池的shutdown()等待任务完成,shutdownNow()强制中断... 目录为什么不强制停止为什么 Java 不提供强制停止线程的能力呢?如何用interrupt停止线程s

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映