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提供的注解;
安照类型注入,按照名称注入。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!