day2

springBootDemo3

1、创建并配置项目

1.1、创建maven项目

day2_第1张图片

1.2、将这三从springBootDemo2复制过来

pom.xml
在这里插入图片描述

1.3添加springBoot整合JSP添加依赖


		
		
			javax.servlet
			javax.servlet-api
		

		
		
			javax.servlet
			jstl
		

		
		
			org.apache.tomcat.embed
			tomcat-embed-jasper
		

1.4添加配置

spring:
  mvc:         #引入mvn配置
    view:
      prefix: /WEB-INF/     # /默认代表根目录 src/main/webapp
      suffix: .jsp

1.5添加jsp文件和Controller

添加userList.jsp


	
			

学生信息

编号 姓名 年龄 性别
${u.id} ${u.name} ${u.age} ${u.sex}

添加userController

/**
 * 说明:
 * 	1. @Controller  + 返回值 String  表示跳转页面   必然经过视图解析器  拼接前缀和后缀
 *  2. @RestController +任意返回值   直接返回JSON数据,不经过视图解析器.
 *      或者  
 *     @Controller + @ResponseBody 
 */
@Controller
public class userController {

	@Autowired
	private UserMapper userMapper;
	@RequestMapping("/findAll")
	public String findAll(Model model) {
		List userList = userMapper.selectList(null);
		model.addAttribute("userList",userList);
		return "userList";
	};
}

通过网址http://localhost:8090/findAll访问
如果端口是80则用这个网址:http://localhost/findAll

SpringMVC调用流程图

day2_第2张图片

2、Ajax展现用户列表

2.1 Ajax原理

AJAX特点: 局部刷新,异步访问.
知识点: ajax为什么可以异步 源于ajax调用方式.(ajax引擎)
同步特点: 当服务器正忙时,用户处于等待状态.
day2_第3张图片
day2_第4张图片

2.2引入jQuery.js

网址:https://jquery.com/download/
在这里插入图片描述

2.3使用ajax异步

添加一个id
添加一个id

 $(function(){
	//alert("页面加载完全,开始调用js")
	//页面取值时,采用对象.属性的方式动态获取.
	$.get("/findAjax",function(result){
			 addTable("tab1",result);
		})
  })			
//定义ajax 展现数据函数	 
 function addTable(eleId,data){
	//遍历数据
	   var trs="";
		$(data).each(function(index,user){
		var id = user.id;
		var name = user.name;
		var age = user.age;
		var sex = user.sex;
		trs +=""+id+""+name+""+age+""+sex+""
		});
		$("#"+eleId).append(trs);
	 }

或者

$.ajax({
	  type: "post",			//method
	  url: "/findAjax",		//网址
	  //data: "name=John&location=Boston",  //传递数据
	  dataType:"json",
	  //准备一个函数,实现表格数据的添加.
	  success: function(result){addTable("tab1",result);},
	  erro:function(data){alert("提示信息: 当前网络正忙,请稍后再试");},
	  async: true,  //默认: true (默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false)
	  cache: false   //默认: true, dataType为script和jsonp时默认为false) jQuery 1.2 新功能,设置为 false 将不缓存此页面。
	 });

	 
	//定义ajax 展现数据函数	 
 function addTable(eleId,data){
	//遍历数据
	   var trs="";
		$(data).each(function(index,user){
		var id = user.id;
		var name = user.name;
		var age = user.age;
		var sex = user.sex;
		trs +=""+id+""+name+""+age+""+sex+""
		});
		$("#"+eleId).append(trs);
	 }
 

JT项目后台搭建

1、逻辑分析

1.1分布式思想

说明: 由于程序将所有的功能模块放到同一台tomcat服务器中,那么如果服务器内部出现了问题,则直接导致整个服务器不能正常执行. 系统架构的耦合性高

1. 分布式系统

核心理念: 按照指定的规则,将系统进行拆分.各自独立运行,减少架构的耦合性

2. 按照模块拆分

优点: 如果其中一个服务器出现了问题,则不会影响整个项目的正常运行.
day2_第5张图片

3. 按照层级拆分

说明:有时代码的业务逻辑特别的复杂.如何减少开发的耦合性.可以按照层级的方式进行拆分.
day2_第6张图片

4. 总结
优点: 可以将大型项目按照指定规则拆分.降低了系统架构的耦合性.方便开发和"维护".
弊端: 拆分完成之后由于项目个数重点 运维不易. 可以接受!!!
分布式另外表现形式: 准备多台服务器一起为用户提供服务.

1.2集群

1. 什么是集群
说明:采用多台服务器部署项目,共同为用户提供服务的.同时可以满足**高可用(HA)**的需求时,称之为集群.
什么是高可用: 当服务器发生宕机的现象时,可以自动的实现故障迁移.保证服务运算能力.
day2_第7张图片

1.3JT分布式项目架构设计

如何管理JAR包
问题说明: 由于分布式的项目构建,导致服务器中jar包维护的份数变多.如果长时间按照该方式运行,则必然导致jar包管理混乱.
解决方案: 准备一个公共的项目,由该项目管理所需要的jar包文件. 其它项目继承该项目即可.
day2_第8张图片

  • 项目划分

1.父级工程 jt 项目打包类型: pom
2.工具API jt-common 打包类型:jar
3.业务系统 jt-manage 打包类型:war

2.构建聚合工程

说明:
修改IDE配置,让new的选项中出现maven相关信息.
day2_第9张图片
day2_第10张图片

2.1创建父级工程Maven Project

day2_第11张图片

  • 添加jar包
  <!-- parent标签作用:管理所有被SpringBoot整合的jar版本的定义 springboot特点:开箱即用,映入jar包就可以添加相对应的功能. 
		定义了当前springboot2.3.1所有有关依赖的版本号信息 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.1.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>


	<properties>
		<java.version>1.8</java.version>
		<!-- 指定插件版本 -->
		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
		<!-- 跳过测试类打包 -->
		<skipTests>true</skipTests>
	</properties>

	<dependencies>
		<!-- 在webjar包的内部关联了所有被springMVC的jar包信息. 定义了当前依赖包的版本  
		所以只需要引入一个jar包,则可以关联整合所有的有关mvc的依赖包信息-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- 配置properties添加属性注入依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- 支持热部署 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
		<!--引入插件lombok 自动的set/get/构造方法插件 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
		
		<!--引入数据库驱动 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<!--springBoot数据库连接  -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<!--springBoot整合JSP添加依赖  -->
		<!--servlet依赖 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>

		<!--jstl依赖 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>

		<!--使jsp页面生效 -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
		<!--spring整合mybatis-plus -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.3.2</version>
		</dependency>
		<!-- 引入aop支持 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-aop</artifactId>
		</dependency>
		<!--spring整合redis -->
		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
		</dependency>
		<!--添加httpClient jar包 -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
		</dependency>
		
		<!--引入dubbo配置 -->
		<!--<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>0.2.0</version>
		</dependency>-->
		
		<!--添加Quartz的支持 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-quartz</artifactId>
		</dependency>	
	</dependencies>
	
	<!-- 父级项目中不要添加maven的插件 -->

2.2创建jt-common(Maven Module)

jar包
day2_第12张图片
导入src文件
day2_第13张图片

2.3创建jt-manage(Maven Module)

war包
day2_第14张图片
导入src文件
day2_第15张图片

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.jt</groupId>
    <artifactId>jt</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!-- 1.继承父级 -->
  </parent>
  <artifactId>jt-manage</artifactId>
  <packaging>war</packaging>
  <dependencies>
  <!-- 2.添加依赖 -->
  	<dependency>
  		<groupId>com.jt</groupId>
  		<artifactId>jt-common</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  </dependencies>
  <!-- 3.添加依赖 -->
  <!-- 负责打包更新maven操作相关配置,必须配置 -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

2.3.1修改yml配置

server:
  port: 8091
  servlet:
    context-path: /
spring:
  datasource:
    #引入druid数据源
    #type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: tarena

  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
#mybatis-plush配置
mybatis-plus:
  type-aliases-package: com.jt.pojo
  mapper-locations: classpath:/mybatis/mappers/*.xml
  configuration:
    map-underscore-to-camel-case: true

logging:
  level: 
    com.jt.mapper: debug

你可能感兴趣的:(笔记四)