spring注解收集

最近这两天一直在复习前面的内容,还是有很多东西都忘记了的。

以后会在这篇帖子里不定期补充、收集spring各个注解

一切都是从零开始的,加油!

虽然是在做程序员,但是每天也是花1个小时的时间去阅读的,以后也会在csdn上分享的。

最近在读的一本书是朱光潜老先生的《给青年的十二封信》。后面也会分享读书心得的。

1.@Component(spring中的)

  1.在spring中学的。

  2.@Component:创建对象的,相当于bean标签的功能。

  3.属性:value的值:就相当于bean中的id值(唯一)。

  例:@Component(value="mystudent1")------在类的头上。

2.@Value(spring中的)

  简单类型的数据的赋值

             @Component(value="mystudent1")

             public class Student {

                            @Value("18")

                            private int age;

                            @Value("任江海")

                            private String name;

             }

3.@Autowired(spring中的)

  某个类中,自动注入某个类。这是他默认的byType类型的注入。

4.@Autowired与@Qualifier联合使用(spring中的)

  这是byName类型的注入。

  @Qualifier的value值是用于指定要匹配的Bean的id值。

  例子:先是在Student类的头上写了:@Component(value="mystudent1")

  接着可以在某个类里面注入这个学生实体类:

  @Autowired

  @Qualifier("mystudent1") //这就特指了某个具体名称的实体类

             private Student student;

5.@Resource(spring中的)

  用法和@Autowired一样的,都是自动注入某个类。

6.@Respotory (用在持久层类上面)

  放在dao的实现类上面,表示dao对象,dao对象是能够访问数据库的

  (目前为止没 用过)

7.@Service (用在业务层类上面)

  放在service实现类上面,创建service对象。做业务处理,有事务等功能(常用的)

8.@Controller

  用于创建控制器对象,并放入到springmvc容器中去,作为控制器使用。

  但是,他创建的是一个普通类的对象,不是servlet。

  工作流程:index.jsp--->DispatherServlet(Servlet)--->转发,分配给Controller对象。

9.@RequestMapping(value=””,method=””)

  把指定的请求交给方法处理。

  例:@RequestMapping(value = "/say")

10.接收请求的几种方式

10.1保证请求参数名和处理方法的参数名相同即可。

  例: 前端传来:name=李晓柔&age=20

             public ModelAndView register(String name,int age){ //这样写即可

                          ******

                          ******

             }

10.2 @RequestParam

  主要是解决前端传来的参数与处理方法的参数名不同的问题。

              例: 前端传来:rname=李晓柔&rage=20

             public ModelAndView register(

                          @RequestParam(value=”rage” Integer age

                          @RequestParam(value=”rname” String name){

                          ******

                          ******

             }

  注:在这个注解中,有两个参数一个是value,一个是required

  required默认情况下式true:代表请求中一定有参数

  改成false时: 代表请求中可以没有参数。

10.3使用对象接收参数

  例:先定义一个实体类Student,有两个属性值:name、age

               前端传来:rname=李晓柔&rage=20

             public ModelAndView register(Student student){

                          ******

                          ******

             }

11.处理器的返回值(四种)

  11.1 ModelAndView

            跳转至其他的资源,又要在资源之间传递数据

  11.2 String

  返回内部资源逻辑名:要注册视图解析器。

  11.3 void(了解即可)

  处理器处理请求后,无需跳转到其他任何资源,可以让处理器方法返回void。

                  应用场景:ajax的异步请求的响应(是无需跳转至其他页面的)

  11.4@ResponseBody 自定义返回类型(Object类型)

             Integer、String、Map、List等。。。。。。

             返回的对象不是作为逻辑视图出现,认识作为直接在页面上显示的数据。

======================分割线:2021.11.24   ====注解补充========================

12.异常处理的两个注解(SpringMVC中学的)

  创建一个普通类,作为全局异常处理类

  @ControllerAdvice写在类的头上

  @ExceptionHandler写在类中方法的头上

  -----------------------------------------------------------------------------

  在处理器中抛出的异常,会在全局异常处理类中,通过

  @ExceptionHandler(value = NameException.class)的value值找到,然后进行异常的反馈。

  (详情请见:springmvc中的ch09项目。视频P61讲的也是很仔细。)

13. @Mapper

  写在dao接口的头上:扫描DAO接口到spring容器。

14. @MapperScan

  案例:在Application.java文件里写这样的注解:
               @MapperScan("com.bjpowernode.springboot.mapper")
              直接开启扫描Mapper接口的包以及子目录。

  注意:一开始的做法是:讲dao接口和其对应的mapper文件在spring容器中进行声明(最麻烦)

              之后进行@Mapper的改进。

              再轴之后进行@MapperScan的改进。

15. @Transactional

  写在service实现类的方法上面,保证事务执行的顺畅性。

16. @GetMapping

  查询数据 的时候使用 经常使用到

  @RequestMapping(value=”/say”,method=RequestMethod.GET)的替代品是======

  @GetMapping(value=”/say”)

17. @PostMapping

  增加数据的 时候使用

  @RequestMapping(value=”/say”,method=RequestMethod.POST)的替代品是======

  @PostMapping(value=”/say”)

18. @DeleteMapping

  作为 @RequestMapping(value = "/say",method = RequestMethod.DELETE)的替代品

  删除数据的 时候使用

  例子:@DeleteMapping(value="/say") 处理器只能接受delete请求 删除数据使用
注:不仅仅只是有get和post两种请求方式啊,还有很多种请求方式的。

19. @PutMapping

  改数据的 时候使用
作为 @RequestMapping(value = "/say",method = RequestMethod.PUT)的替代品
例子:@PutMapping(value="/say") 处理器只能接受put请求 改数据使用

  总结来讲:suid时,各有各对应的请求方式,用准请求方式很重要,例如:Controller只接受删除时,发送的是get请求,那就会报405错误。所以我们可以使用postman这个工具,来指定发送什么请求(浏览器只能发送get请求。)

20. @PathVariable

  接受路径形式的请求参数。
@GetMapping(value = "/student/detail/{id}/{age}") //作为RESTful风格,请求路

  径是写成路劲形式的。
例: public Object student1(@PathVariable("id") Integer id,
@PathVariable("age") Integer age) {
      ************
      ************
       }

======================分割线:2021.11.30   ====注解补充========================

21. @SpringBootApplication

  写在springboot的启动文件application里。 开启springboot注解。

22. @EnableDubboConfiguration

  写在springboot的启动文件application里。 开启dubbo配置。

23. @Reference

  @Reference是dubbo的注解,也是注入,他一般注入的是分布式的远程服务的对象,

  需要dubbo配置使用。

  -------------------------------------------------------------------------------------------------------------

  简单来说@Reference、@Resource和@Autowired的区别:

  @Reference注入的是分布式中的远程服务对象,@Resource和@Autowired注入的是本地spring容器中的对象。

24. @Configuration

  写在某类的头上,定义此类为配置文件。

25.springboot中的关于servlet的注解

1.@WebServlet(urlPatterns = "/myservlet")在某类的头上写,注明这是一个servlet。
2.在Application主文件中写:表示扫描所有的Servlet包。
@ServletComponentScan(basePackages = "com.bjpowernode.springboot.servlet")

26.springboot中过滤器的注解

  其实和上面的Servlet是差不多一样的。

1.在自己写一个过滤器MyFilter类,头上标注:@WebFilter(urlPatterns = "/myfilter") 说明这是一个过滤器。
a. MyFilter类需要继承Filter类 public class MyFilter implements Filter
b. /myfilter:是过滤器的访问路径。
2.在springboot的启动文件中扫描过滤器@ServletComponentScan
@ServletComponentScan(basePackages = "com.bjpowernode.springboot.filter")

======================分割线:2021.12.5   ====注解补充========================

27.@ResponseBody与@RestController

  见springboot中的017案例

  @ResponseBody的作用其实是将java对象转为json格式的数据。

  那么@RestController是干嘛用的呢?

  @Controller +@RequestMapping+ @ResponseBody 返回json对象
 @RestController+@RequestMapping 也是返回json对象(这俩是一样的效果)
当实际开发中,控制器返回的都是json格式的数据,就直接使用:@RestController

28.@Bean

  用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值