javaSE:OOP
mysql:持久化
html+css+js+jquery+框架:视图,框架不熟练,css不好
javaweb:独立开发mvc三层架构
ssm:框架,简化了我们的开发流程,配置较为复杂
spring+springMVC+mybatis
spring:主要是ioc与aop技术,大大简化了配置信息的配置难度。
springMVC:主要是方便了前端发送请求到后端接收方面的构建难度
-----------------原本:我们需要让每个servlet继承HttpServlet,并且需要在 web.xml中手动注册每个servlet从 而实现消息的转化
-----------------springMVC:我们需要servlet继承Controller类,在web.xml中只需要注册核心的 dispatchServlet,在bean文件中注册servlet(可以用注解代替),其中包括json乱码、过滤器、拦截器等都可以通过在bean.xml中配置
spring与springMVC的区别:spring主要注重于后端结构的优化、springMVC主要注重于前后端交互模块 上使用spring来简化代码结构
war包:tomcat运行
spring再简化:springboot-jar包:内嵌tomcat,微服务架构!
服务越来越多:springcloud
新服务架构:服务网格!
maven、spring、springmvc、springboot…:约定大于配置
程序 = 数据结构 + 算法
**微服务:**是一种风格,架构风格
MVC三层架构 : MVVM 微服务架构
业务:service:
官方:提供了一个快速生成的网站!idea集成了这个网站
pom.xml
org.springframework.boot
spring-boot-starter
我们要使用什么功能,就只需要找到对应的启动器就好了(例如:spring-boot-starter-web)
//本身就是一个spring组件
//程序的主入口 SpringBootApplication:标注这个类是一个springboot的应用
@SpringBootApplication
public class HelloWorldApplication {
public static void main(String[] args) {
//将springboot应用启动
SpringApplication.run(HelloWorldApplication.class, args);
}
}
注解详解
@SpringBootConfiguration:springboot的配置
@Configuration:spring配置类
@Component:spring组件
@EnableAutoConfiguration:自动配置
@AutoConfigurationPackage:自动配置包
@Import({Registrar.class}):导入选择器“包注册”
@Import({AutoConfigurationImportSelector.class}):自动配置导入选择
//获取所有的配置
List configurations = this.getCandidateConfigurations(annotationMetadata, attributes)
获取候选的配置
protected List getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
List configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
Assert.notEmpty(configurations, "No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");
return configurations;
}
META-INF/spring.factories:自动配置的核心文件
结论:所有的spring自动配置类都在启动类被扫描并加载—spring.factories文件
spring.factories文件包含所有自动配置类()
启动
javaConfig @Configuration @Bean
关于springboot,谈谈你的理解
全面接管springMVC的配置!实操!
yaml可以直接给实体类赋值
在配置文件中能配置的东西,都存在一个固定的规律
配置文件 spring.xxx= value ==》 xxxxProperties ==》ConfigrationProperties(prefix=“xxx”)
自动装配
springboot帮我们配置了什么?能不能修改、能不能扩展、能改哪些东西
要解决的问题;
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
} else {
this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
registration.addResourceLocations(this.resourceProperties.getStaticLocations());
if (this.servletContext != null) {
ServletContextResource resource = new ServletContextResource(this.servletContext, "/");
registration.addResourceLocations(new Resource[]{resource});
}
});
}
}
什么是wenjars
总结:
在springboot的resource目录下:resource、public、static文件夹都可以放静态资源,
结论:只要需要使用thymeleaf,只需要导入对应的依赖就