IOC与DI入门
完成代码解耦:将new对象的地方全部删掉
第一步:将要使用的对象加入IOC容器成为Bean
使用以下两个注解.解析如下下张图
因此我们通过注解开发的方式将代码之间进行了解耦,具体例子如下
我们也许会有多个不同的EmpDao的对象对应不同的业务,但他们都是Mapper层的bean',此时我们可以通过控制两个注解哪一个生效,来切换业务.
通过以上方式修改bean的名字
spring常用注解
一般来说对应的层我们使用对应的衍生注解
注意事项:
如果你把bean放在启动类所在包的上一级就无法扫描到
@RequestController请求路径简化方式:将基础路径写在RequestMapping上
入门程序
部门管理-查询
以下为三层解耦的代码,也是项目的核心代码
重点全部说明!
1. @Slf4j 专门用于简化记录日志的操作 后文才有log.info()直接调用记录日志
2. @GetMapping("") 此处用于记录访问的路径
@GetMapping注解的工作原理与@RequestMapping注解类似。当Spring Boot接收到一个HTTP GET请求时,它会查找具有相应URL路径的控制器方法,然后调用该方法处理请求。在调用控制器方法之前,Spring Boot会执行一系列预处理操作,例如解析请求参数和验证请求头。在调用控制器方法之后,Spring Boot会执行一系列后处理操作,例如转换响应信息和生成响应头。
示例代码
下面是一个简单的示例代码,演示了如何使用@GetMapping注解:
@RestController @RequestMapping("/api") public class MyController { @GetMapping("/hello") public String hello(@RequestParam String name) { return "Hello, " + name + "!"; } }在上面的示例中,@RequestParam注解表示请求参数“name”的值将被注入到方法参数中。当客户端发送HTTP GET请求“/api/hello?name=world”时,Spring Boot会自动将请求映射到hello()方法,并将参数“world”注入到方法参数中,最终返回字符串“Hello, world!”。
@Slf4j
@RestController
public class DeptController {
@Autowired
private DeptService deptService;//注入service对象
@GetMapping("/depts")//请求方式为get
public Result list ()
{
log.info("查询全部部门数据");
List<Dept> deptList = deptService.list();
return Result.success(deptList);
}
}
public interface DeptService {
//查询全部部门数据
List<Dept> list();
}
@Mapper
public interface DeptMapper {
//查询全部部门信息
@Select("select * from dept")
List<Dept> list();
}
部门管理-删除
源码:
重点全部说明!
1.@DeleteMapping
在Spring框架中,@DeleteMapping是一个组合注解,它是@RequestMapping注解的特定变种,用于处理HTTP DELETE请求。
@DeleteMapping注解可以应用在方法上,表示该方法处理对应的URL的DELETE请求。DELETE方法通常用于删除资源。
例如,如果你有一个"user"资源,并且你想创建一个处理删除"user"请求的方法,你可以这样做:
java
@RestController public class UserController { @DeleteMapping("/user/{id}") public ResponseEntity<Void> deleteUser(@PathVariable Long id) { // 这里处理删除用户的逻辑 // ... return ResponseEntity.ok().build(); } }
在这个例子中,URL "/user/{id"接收一个DELETE请求,然后调用deleteUser方法来处理这个请求。这个方法会删除ID为{id}的用户。如果成功,它将返回一个200 OK响应。否则,它会返回适当的错误响应。
2. @PathVariable
主要作用:映射URL绑定的占位符
带占位符的URL是 Spring3.0 新增的功能,URL中的 {xxx} 占位符可以通过 @PathVariable(“xxx”) 绑定到操作方法的入参中。
例如:@RequestMapping("/user/{id}")
public String testPathVariable(@PathVariable("id") String id){
System.out.println("路径上的占位符的值="+id);
return "success";
}
————————————————
原文链接:https://blog.csdn.net/he1234555/article/details/115146824