常用注解解说: https://www.bilibili.com/video/BV1y7411j78K?p=2&spm_id_from=pageDriver
返回前端字符
接收前端参数 @RequestParam --------------get请求
uri例子: /parm2/?id=333
defaultValue 为默认值 defaultValue = "id的默认值"
required 为是否可为空 required = false 可以为空前端不传值
接收前端参数 @PathVariable
url例子: /path/2
第一个方法不写路径,那么可以直接请求访问:
--------post请求
后计: 后面发现 user 可以随便给 他只是形参,然后把它传到对应要调用的方法
注意: User这个类 我是用了 lombok 、给类加了有参构造和无参构造 (超哥说 请求的时候 参数会自动映射到这个类 然后拿到对应的变量)
lombok注解 可以看这个 https://blog.csdn.net/u011308294/article/details/78627560
@ToString @Data @NoArgsConstructor @AllArgsConstructor public class User { int age; String name; }
例子:
参考: https://www.cnblogs.com/kaibindirver/p/14961473.html
另外一篇 https://www.cnblogs.com/kaibindirver/p/15394513.html
使用中问题记录
UserController.java
@RestController @RequestMapping("BB" ) public class UserController { // 新增数据 @Qualifier("ee") @Autowired private UserServer userServer; @GetMapping("{id}") public User AA(@PathVariable("id") int id){ return userServer.get(); } }
UserServer.java
public interface UserServer { public default User get(){ User user= new User(18,"张三"); System.out.println("get User"+user); return user; } public User getById(int id); }
UserServerimpl.java
@Service("ee") public class UserServer2impl implements UserServer { @Override public User getById(int id) { User user= new User(id,"张三"); System.out.println("get User"+user); return user; } }
超哥说 impl层是实现业务逻辑的
UserServerimpl 中 @Service("ee") 可以给这个实现类命名为ee
然后控制层中
@Qualifier("ee")
@Autowired
private UserServer userServer;
另外一种写法是用
@Resource(name="ee")
private UserServer userServer;
如果实现类没有给他另起名字,那么就是 @Resource(name="userServerimpl") 注意首字母要小写
Qualifier 是指定哪个实现类
因为用Autowired是从bean里面找注册的类,然后下面变量用的是接口层 UserServer ,他回自动去找 接口层对应的实现类有哪些,实现类只有一个 就不用@Qualifier("ee")指定系统去找实现的类,如果接口有1个以上的实现类就要加上
@Qualifier("ee")指定要使用那个实现类了
然后再调用接口层 get()方法,他会自动去找重载实现接口get()方法的实现类
如果接口层要有默认的方法 要加 default 关键词
@Value()注解的使用
可以获取配置文件里面的变量
application.properties配置文件
#自定义变量
local.username=lucax
contro层里面可以调用
@Value("123")
private String username;
@Value("${local.username}")
private String username;
后记:
@ResponseBody
@ResponseBody,一般是使用在单独的方法上的,需要哪个方法返回json数据格式,就在哪个方法上使用,具有针对性。
@RestController
@RestController,一般是使用在类上的,它表示的意思其实就是结合了@Controller和@ResponseBody两个注解。
接收请求头信息去这里看看
https://www.cnblogs.com/kaibindirver/p/15398815.html
请求ip啥的 下面这篇文章有
https://blog.csdn.net/qq_41767337/article/details/89144733