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

发布时间 2023-06-20 19:00:18作者: 大树2

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提供的注解;
安照类型注入,按照名称注入。