Spring开发总结

版权声明:作者:xp_9512 来源:CSDN 版权声明:本文为博主原创文章,转载请附上博文链接! 原文: https://blog.csdn.net/qq_40981804/article/details/88598759

自己总结一些开发中用到的注解

Spring注解

1、@Controller

使一个普通的Java类变成一个控制器类能被spring框架识别,在里面写控制器方法

@RestController

将此Java类中的所有方法的返回值的类型转换为json类型

2、@RequestMapping(“url地址”)

 将一个地址和一个方法建立映射关系(客户端的地址与控制器类建立映射)

@RequestMapping(value=“url地址”, method=RequestMethod.post) 只接受post方式的请求

例如:

@RequestMapping(“/bank/del.do?id=”)
public String DEL(int id){ //String代表一个路径,将请求转发到此页面
    return “remove.jsp”
}

3、@ResponseBody注解:

在方法的返回值类型前添加,返回值在前端自动将Java类型数据转化为json类型
例如: public @ResponseBody List print(){}

4、@ResponseParam(“id”) 注解

加在方法的参数前,强制访问此页面时必须添加id参数(自动完成类型转换)

5、@Resource注解:

自动查找和自动装配 ,简称IoC 控制反转,依赖注入(你需要什么,spring会主动提供给你)
spring框架会自动查找对象实例,如果找不到的话就自动创建你需要的类

6、@Repository注解:

用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
在spring框架中注册,加载到实现类的前面

7、@Service注解:

用于注解业务实现类

8、@Mapper注解:

mybatis提供的注解,当引用mybatis框架时底层的DAO变成一个XML文件为了使spring识别DAO,所以在DAO的接口类前添加

9、@PathVariable(“id”):

从请求路径中去一个名为id变量(路径中/{id})
rest full风格的url:将以前url中?+参数的形式改为/{参数值}

10、@Configuration注解:定义spring框架的补充配置,一般用于过滤器

11、@bean注解:

一般用在Configuration注解的类中,在项目中注解一个组件

12、@Autowired与@Qualifier注解

当注解在属性或者类名上时,一般这两个注解一块使用

  • @Autowired默认是根据类型进行注入的,因此如果有多个类型一样的Bean候选者,则需要限定其中一个候选者,否则将抛出异常
  • @Qualifier限定描述符除了能根据名字进行注入,更能进行更细粒度的控制如何选择候选者,这个注解也可以用在参数上,表明具体的那个类

13、@component (把普通pojo实例化到spring容器中,相当于配置文件中的)

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

spring请求的几种方式(面试/需要高版本的浏览器)

四种请求方式

  • @GetMapping

    说明: @RequestMapping(method = RequestMethod.GET)的简写
    作用:对应查询,表明是一个查询URL映射

  • @PostMapping

    说明:@RequestMapping(method = RequestMethod.POST)的简写
    作用:对应增加,表明是一个增加URL映射

  • @PutMapping

    说明:@RequestMapping(method = RequestMethod.PUT)的简写
    作用:对应更新,表明是一个更新URL映射

  • @DeleteMapping

    说明: @RequestMapping(method = RequestMethod.DELETE)的简写
    作用:对应删除,表明是一个删除URL映射

与请求相关的几种注解

  • @Controller

    @Controller 用来响应页面,表示当前的类为控制器。用在控制层

  • @RestController

    @RestController 是@ResponseBody和@Controller的结合
    表明当前类是控制器且返回的是一组数据,不是页面

  • @Autowired

    这个注解的作用是将其他的类,接口引入,类似于之前的类的初始化等,用这个注解,类中或接口的方法就可以直接调用了。

  • @RequestMapping

    当前台界面调用Controller处理数据时候告诉控制器怎么操作
    作用:URL映射(前台调用接口的路径)

3、 @Async异步

  • 简介
    在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。
    分为不带参数的异步调用;带参数的异步调用;调用返回Future的异步线程

  • @Async调用中的事务处理机制
    在@Async标注的方法,同时也适用了@Transactional进行了标注;在其调用数据库操作之时,将无法产生事务管理的控制,原因就在于其是基于异步处理的操作。 那该如何给这些操作添加事务管理呢?可以将需要事务管理操作的方法放置到异步方法内部,在内部被调用的方法上添加@Transactional. 例如: 方法A,使用了@Async/@Transactional来标注,但是无法产生事务控制的目的。 方法B,使用了@Async来标注, B中调用了C、D,C/D分别使用@Transactional做了标注,则可实现事务控制的目的。

  • 配合使用@EnableAsync
    @EnableAsync
    在启动类或者Control类加上 @EnableAsync 注解

@EnableAsync注解的意思是可以异步执行,就是开启多线程的意思。可以标注在方法、类上。@Async所修饰的函数不要定义为static类型,这样异步调用不会生效

如下:

@SpringBootApplication
@EnableAsync
public class Application
{
    public static void main( String[] args )
    {
        SpringApplication.run(Application.class, args);
    }
}

或者:

@EnableAsync
@RestController
public class HelloController {
    
    @Autowired
    TestAsyncService testAsyncService;

}

Spring boot注解:

1、@JsonSerialize(using = ToStringSerializer.class):

spring boot 注解可以让返回的json数据都为字符串

2、@JsonIgnore:

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

Springmvc注解:

1、@RequestParam(value = “page”, required = false, defaultValue = “1”)

规定前端向后台发送请求时必须要有某个参数,value可以省略,此注解的作用相当于requset.getParameter(“name”)

2、@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss” ):

页面将数据传到后台,是以字符串的形式。所以时间格式会出错。加上此注解,后台可解析时间格式的字符串。

3、@JsonFormat(pattern = “yyyy-MM-dd HH:mm”, timezone=“GMT+8”):

@JsonFormat 默认是标准时区的时间,多出现少8小时的情况 使用时,按需求加上时区 北京时间 东八区 timezone=”GMT+8” 作用:后台的时间 格式化 发送到前台

猜你喜欢

转载自blog.csdn.net/qq_40981804/article/details/88598759