Springboot web,三层架构, IOC&DI 使用总结2023

Springboot web,三层架构, IOC&DI 使用总结2023

一.spring.io 全家桶
spring boot
spring framework 基础框架,配置繁琐,入门难度大--》spring boot
spring cloud
spring security
spring data

spring发展到今天是一个生态圈,提供了若干个子项目,每个子项目用于完成特定的功能。

二.spring boot
spring 配置繁琐,入门难度大--》spring boot:快速的构建应用程序,简化开发,提供效率。
1.web入门
1.1spring initializr +web spring 模块
1.2请求处理类:@RestController

@RestController
 public class HelloController{
   @RequestMapping("/hello")
   public String hello(){
     return "hello";
   }
 }

1.3 http://localhost:8080/hello
2.http协议
3.web服务器tomcat

三. 请求响应:

@RestController--@ResponseBody
@RequestMapping("/hello")

1.统一返回结果格式:
Restlt(code,msg,data)

2.读取项目里的文件:

String file=this.getClass().getClassLoader().getResource("emp.xml").getFile(); #读取本地项目里的文件
List<Emp> empList XmlParserUtils.parse(file,Emp.class);
empList.stream().forEach(emp->{
  String gender=emp.getGender();
  if("1".equals(gender)){
  emp.setGender("男“);
  }
});

3.静态资源访问:
resouce/static/test.html
localhost:8080/test.html

四.三层架构
1.分层解耦:数据访问,逻辑处理,接收请求,响应数据
controller:接收请求,响应数据
service:逻辑处理
Dao:数据访问:增删改查
面向接口编程:

2.IOC&DI :高内聚:单一任务;低耦合:解除调用层之间的联系--》将需调用的对象放到容器里
3.IOC:控制反转,对象的创建控制权有程序自身转移到外部(容器),这种思想称为控制反转;
4.DI:容器为应用程序提供运行时所依赖的资源,程为依赖注入;

5.@Component #类添加此特性注解:表示将当前类交给IOC容器管理,称为IOC容器中的bean 即控制反转操作
6.@Autowired #调用声明的对象上添加此特性注解(orderService,userService):表示IOC容器会提供该类的bean对象,并赋值给该变量,称为依赖注入。

7.@Component 声明bean的基础注解:的衍生注解:
@Controller 标注在控制器的类上
@Service 标注在业务类上
@Repository 标注在数据访问类上

8.手动指定扫描包:@ComponentScan("","")
9.@SpringBootApplication 默认扫描此类包下的所有类的包;

  1. 多个服务添加了@Service注解,调用时使用那一个对象;
    @Primary #在类上添加这个注解
    @Qualifier #在声明的对象上添加:@Qualifier(“orderServiceA bean的名称”)+@Autowired
    @Resource #在声明的对象上添加:@Resource(name=“orderServiceA bean的名称”) 不需要 @Autowired

11.@Autowired 与@Resource的区别?
spring框架提供的注解,JDK提供的注解;
安照类型注入,按照名称注入。

posted @   大树2  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示