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 默认扫描此类包下的所有类的包;
- 多个服务添加了@Service注解,调用时使用那一个对象;
@Primary #在类上添加这个注解
@Qualifier #在声明的对象上添加:@Qualifier(“orderServiceA bean的名称”)+@Autowired
@Resource #在声明的对象上添加:@Resource(name=“orderServiceA bean的名称”) 不需要 @Autowired
11.@Autowired 与@Resource的区别?
spring框架提供的注解,JDK提供的注解;
安照类型注入,按照名称注入。