抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

微服务于微服务架构

微服务强调服务的大小,他关注某一个点,一个模块只做一种事情
微服务架构通常而言,他提倡将单一的程序划分为一组小的服务,每个服务运行在独立的进程中,采用轻量级的通信机制 doubbo是rpc,springcloud是restful

启动配置原理

几个重要的事件回调机制

  • ApplicationContextInitializer
  • SpringApplicationRunListener
  • ApplicationRunner
  • CommandLineRunner

启动流程

1
return new SpringApplication(primarySources).run(args);
  • 创建SpringApplication对象
  • 运行run方法

创建对象

现在左边的参数是null

1
2
3
4
5
6
7
8
9
10
11
12
public SpringApplication(Class<?>... primarySources) {
this(null, primarySources);
}
public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {
this.resourceLoader = resourceLoader;
Assert.notNull(primarySources, "PrimarySources must not be null");
this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources));
this.webApplicationType = WebApplicationType.deduceFromClasspath();
setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
this.mainApplicationClass = deduceMainApplicationClass();
}

创建项目

选择MySQL+JDBC+Web

链接数据库

1
2
3
4
5
6
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/jdbc
driver-class-name: com.mysql.jdbc.Driver

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 拦截器拦截器是SpringMVC框架自己的,只用SpringMVC才能使用拦截器只会拦截访问的控制方法,静态资源是不会拦截的 定义拦截器实现HandlerInterceptor其实只要使用preHa...

整合

  • 创建数据库
  • 导入依赖
  • 建立基本结构和配置框架
  • 编写MyBatis.xml
  • 编写Spring-dao.xml
  • 编写Spring-service.xml
  • 编写web.xml
  • 编写Spring-mvc.xml
  • 编写applicationContext.xml

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial JDBC的优化和封装 (1) 使用数据库连接池对连接进行管理(2) SQL语句统一存放到配置文件(3) SQL语句变量和传入参数的映射以及动态SQL(4) 动态SQL语句的处理(5) 对数据库操作结...

MyBatis

是一个对JDBC的封装,是一个数据持久化框架

优点

减少代码量,降低维护成本,讲SQL写到XML中,降低耦合度,支持动态SQL语句,支持标签映射,

缺点

SQL编写工作量大,SQL语句依赖数据库,导致移植性较差

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial json用起来 导入json 配置json 新建对象 转化为json 12345<dependency> <groupId>com.fasterxml...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial json这是一个字符串,他可以把JavaScript对象变成字符串,然后传给后端,实现前后端分离 bsonbson是由10gen开发的一个数据格式,目前主要用于mongoDB中 bson 的遍历更加...

注解配置Controller

这里的19行是spring中的注解扫描,21行是不去处理静态资源,23行是配置处理器的适配器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

<context:component-scan base-package="com.wsx.controller"/>
<!-- 不处理静态资源-->
<mvc:default-servlet-handler/>
<!-- 配置处理器和适配器-->
<mvc:annotation-driven/>

<!-- 解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>

</beans>