熟悉Spring、SpringMVC、SpringBoot、SpringCloud、Mybatis、Hibernate、Jpa等框架;
Spring框架:理念DI/IOC和AOP容器的框架
Di;就是依赖注入,比如A类需要一个数据库Connection对象,Spring就会在需要的时候通过反射获得一个Connection,DI的方式两种:构造器或者set注入
IOC:控制反转,这是spring的核心,
用Spring来负责控制对象的生命周期和对象间的关系,总的来说,就是所有类控制对象的权限交给spring统一管理
AOP:面向切面编程,将业务逻辑松耦合,提高程序可重用性,相同的业务逻辑抽取,再切入到需要使用这段逻辑的模块中去.包含@ApsectJ注解新功能面,面内@Before @After 等 pointCut和joinput
复制代码
@Aspect
public class AnnoationAspectJ {
@Pointcut("execution(* com.bat.aspectJ.App.say(..))")
public void joinPoint() {
}
@Before("joinPoint()")
public void before() {
System.out.println("切入前--------");
}
@After("joinPoint()")
public void after() {
System.out.println("切入后");
}
}
复制代码
Spring MVC:为了降低jsp和javaBean的耦合
M就是模型,( bean dao)
V:视图,( 网页),
C:控制器,控制视图和模型的一,一对应
Service层通过spring的声明式事务操作DAO层,
复制代码
SpringBoot: 为了消除大量配置
1. web.xml 为了加载spring和spring mvc
2. 配置数据库连接,和日志文件
3. 配置对配置文件的读取,和注解支持
4. mapper映射
复制代码
启动配置
用idea 启动spring initial创建工程,此时会生成启动类SpringBootApplication和空测试类SpringBootApplicationTests和Application.properties以及Pom.xml
值得注意:
1.@SpringBootApplication 直接代表三个注释(@Configuration、@EnableAutoConfiguration[根据jar包为项目进行自动配置]、@ComponentScan)
2.properties可以直接用yml替代
热部署注意:修改代码后及时重启boot,编译新代码
复制代码
增加jsp支持
1. 包括servlet依赖和tomcat支持
复制代码
2. jsp定向
复制代码
扫描二维码关注公众号,回复:
7017119 查看本文章
3. 修改RestController的注解为Controller
复制代码
4. 依照配置新建jsp文件
5. 等待热部署刷新
复制代码
增加Mybastis支持
1. pom.xml
复制代码
2. yml增加配置
复制代码
3. 创建相关pojo实体类和Mapper映射
4. Controller调用
5. 写jsp收数据
6.重启boot 因为增加了依赖,热部署失效
Spring Cloud: 基于spring
boot设计的微服务规范,增强了上下文的一套快速构建分布式系统的一系列框架的有序集合.
复制代码
变革:
从单体架构[一个应用,一个数据库,一个web容器]到垂直架构[业务模块拆分]到服务架构SOA[服务之间用webservice或者dubbo治理] 再到微服务架构
微服务:一种软件架构风格,专注于单一责任和功能的小型功能区为基础,
1.大型系统需要服务拆分精细化,2.各个服务独立部署(多个docker实例),3.服务独立维护,4.服务治理要求高,
组件协同微服务搭建:
全览图:
复制代码
1.Eureka 服务的注册和发现,将服务连接起来
2.Hystrix 监控服务调用情况,和提供熔断机制
3.Hystrix dashboard,Turbine 监控熔断情况提供图形化展示
4.SpringCloudConfig 读取Git/SVN的配置,统一的配置文件中心
5.Spring CloudBus 通过和各个客户端通信,下发配置文件的自动refresh
6.zurl 所有内外的资源请求,都通过网关转发,权限校验
7.Sleuth和Zipkin提供复杂的服务间调用跟踪关系.监控,并记录
复制代码
Mybatis
MyBatis 简介 MyBatis是基于java的持久层框架
为什么使用MyBatis
传统的jdbc操作需要手动操作Connection Statement ResultSet,使用Mybatis,相比于Hiberhate,上手简单,适合经常的项目变化需求
复制代码