栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot 常用注解记录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot 常用注解记录

注解详解

注入和自动装箱其实就和引入然后new实例一样,注入了之后就可以实用原有bean的属性和方法
它还可以反射赋值,修改原有bean的属性,但是一般用不上,
大部分情况是用原有bean的属性和方法

注入的作用: 代替了原来需要导入然后new实例化使用类中方法和属性的过程,如果在spring中使用new实例就不是单例了。

@RestController

@RestController = @Controller + @ResponseBody:用于定义控制器类,返回json格式

@RequestMapping。

示例代码:

@RestController 
@RequestMapping(“/demoInfo”) 
publicclass DemoController { 
@Autowired // 注入容器
private DemoInfoService demoInfoService;  // 实例化bean

@RequestMapping("/hello")
public String hello(Map map){
   System.out.println("DemoController.hello()");
   map.put("hello","from TemplateController.helloHtml");
   //会使用hello.html或者hello.ftl模板进行渲染显示.
   return"/hello";
}
}
@Resource和@Resource

@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入

而@Resource默认按 byName自动注入罢了

@Component

@Component表示注解的分类。

  • @Component 标注一个类为spring 容器的bean,当组件不好归类的时候,我们可以使用这个注解进行标注。其中的"exeshell"作为Bean的名称.如果不配置的话,那么IOC容器会把类名的第一个字母小写,其他不变作为Bean名放入到容器中.
@Component("exeshell")
public class ExeShell {
    public void test_exeshell(){
        System.out.println("测试执行shell");
    }
}

@Component扩展的注解有下面几个:

  • @Repository 作用于持久层
  • @Service 作用于业务逻辑层
  • 等等

@Service @Repository 都可以用用@Component 代替
通常一些类无法确定是使用 @Service 还是 @Component 时,注解使用@Component 比如redis的配置类等

JPA注解
  • @Entity:@Table(name=”“): 表明这是一个实体类 一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略

  • @NoRepositoryBean: 一般用作父类的repository,有这个注解,spring不会去实例化该repository

  • @Column:如果字段名与列名相同,则可以省略

  • @Id:表示该属性为主键。

  • @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。

  • @JoinColumn(name=”loginId”):
    一对一:本表中指向另一个表的外键
    一对多:另一个表指向本表的外键。

  • @OneToOne、@OneToMany、@ManyToOne:对应hibernate配置文件中的一对一,一对多,多对一

@RequestBody 注解

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交

    @PostMapping("bb")
    public String myTest0(@RequestBody String jsStr){
        System.out.println(jsStr);
        return jsStr;
    }

    // 用实体类接收
    // postman 要选择json/application
    @PostMapping("cc")
    public void myTest1(@RequestBody User user){
        System.out.println(user.toString());
		System.out.println(user.getCity());   // 取key对应的value
    }

实体类如下;

package ye.club.entity;

import lombok.Data;

@Data
public class User {
    private String name;
    private Integer age;
    private String city;
}

@RequestParam 注解
@GetMapping("/charu2")
    public String create2(@RequestParam("name") String name,@RequestParam("city") String city) {
		//
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号