简介:
1,一站式整合所有框架的框架,完美整合Spring技术栈
优点:
1,快速创建独立的Spring项目以及和主流框架集成
2,使用嵌入式的Servlet 容器
3,Starters(场景启动器)自动依赖与版本控制
4,大量自动配置,简化开发,也可以修该默认值
5,无需配置XML,无代码生成,项目创建好直接用
6,有一套完整的应用监控,生产环境运行实时监控
7,与云计算天然集成
缺点:
单体应用,诸多缺点:大,启动慢
服务微型化:
将功能都抽成一个独立的模块,每一个模块都有自己的一个独立的容器
任何一个模块的升级维护,替换都不影响其它模块
微服务的样子:
官方定义:微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。
微服务之间如何交互:
1,用java代码发请求
2,RPC(远程过程调用)
用的自己的dubbo传输协议,没用http协议
SpringBoot怎么用:
- 创建maven工程,导入依赖
- 写自己的contorller
- 运行应用
效果:contorller可以用,tomcat启动了,乱码解决了,DispatcherServlet不用写,日志也可以用
注意:
1),标记了@SpringBootAppliaction得类,必须有main方法,说明这是一个SpringBoot
应用(主配置类,主程序)
2),默认的约定
所有的组件类必须放在@SpringBootAppliaction标注的包或者子包中才能被扫描到
SpringBoot的简单原理:
SpringBoot已经适配了所有的应用场景,想用哪个至于要引用相应的Starter即可,剩下的全是
自动配置好的。我们只需要写Controller/service就行,嵌入式tomcat
SpringBooot的默认规则
static :将所有的静态资源放在该文件夹下
tempplatess :模板,放模板页面(默认不支持)
可以用页面引擎完成页面功能
application.properties :Springboot的主配置文件
server.port=要改的端口号
springboot还支持另一种配置文件:
yml:比较主流的配置文件类型跟properties的区别是yml是层级目录
SpringBooot配置
SpringBoot所有的东西都自动配置好了;
1)、spring-boot-autoconfigure-2.0.7.RELEASE.jar(自动配置包)
2)、好多的场景全部自动配置好
自动配置原理:
-
主程序类标注了@SpringBootApplication注解相当于标注了
@EnableAutoConfiguration -
@EnableAutoConfiguration 开启SpringBoot的自动配置功能 就会自动的将所有的自动配置类导进来
如:HttpEncodingAutoConfiguration(http编码的自动配置) 1)、@ConditionalOnXX根据当前系统环境判断我这个类的所有配置是 否需要生效 2)、会发现这些配置类中使用@Bean给容器中放了好多组件, 这些组件就生效; 3)、这些组件会从一个类中(配置文件属性值的封装类)获取到它 应该使用的值是什么。比如HttpEncodingProperties获取charset 4)、这写配置文件值的封装类都是和配置文件一一绑定 @ConfigurationProperties(prefix = "spring.http.encoding") HttpEncodingProperties
使用心得:
-
1)、SpringBoot帮我们配好了所有的场景 2)、SpringBoot中会有很多的 xxxxAutoConfigurarion(帮我们给容器中自动配好组件) 3)、xxxxAutoConfigurarion给容器中配组件的时候,组件默认的属性一般都是从 xxxProperties中获取这些属性的值 4)、xxxProperties 是和配置文件绑定的(属性一一对应) 5)、我们改掉这些默认配置即可; 6)、如果他配的组件我们不用; @Bean @ConditionalOnMissingBean:容器中没有这个组件对象 public InternalResourceViewResolver defaultViewResolver() SpringBoot的一个最大策略:你自己给容器中加入了同类型的组件就用你的,没加就用默认我配置,默认配置的组件都可以改掉属性值; 7)、我们可以自己往SpringBoot中放任何组件,只要放在容器中就能起作用
springboot和mybatis的整合
1,在配置文件种指明mybatis全局配置文件和SQL映射文件的位置
mybatis:
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mapper/*.xml
2,扫描mybatis的所有mapper接口
@MapperScan(“接口包名”)
springboot和redis的整合:
1,引入srarter-redis依赖
2,配置redis的地址 spring.redis.host=192.168.75.188
3, 在业务里面自动注入RedisTemplate
- RedisTemplate<Object,Object>
2)StringRedisTemplate<String,String>
RedisTemplate.opsForXXX(操作什么就For什么)
SpringBoot框架进行web开发:
1,创建war
2,不要运行main方法
3,改好视图解析器的地址
4,以前怎么做现在 怎么做
(springboot的嵌入式tomcat默认不支持jsp,用外置的。(可以加入jasper的jar就可以
了)并且1.5版本的可以用tomcat7,2.0之后的版本得用tomcat8)
小结
要掌握书,莫被书掌握;要为生而读,莫为读而生。——布尔沃
欢迎点赞评论,谢谢!