当前位置:   article > 正文

2024年Java最新深入学习SpringBoot微服务框架,Java后端路线图_java 微服务怎么学

java 微服务怎么学

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们

目录:

全靠这套面试题,才让我有惊无险美团二面拿offer  (面经解析)

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

全靠这套面试题,才让我有惊无险美团二面拿offer  (面经解析)

Java面试核心知识点

已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了

全靠这套面试题,才让我有惊无险美团二面拿offer  (面经解析)

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

    • (1)简单对象
  • (2)管理多个对象

  • 六、SpringBoot集成JSP页面展示

      • 1、当前控制器中不能直接返回jsp逻辑名(页面的名字) 出现404
  • 2、集成jsp页面

    • (1)引入jsp的集成jar包
  • (2)在应用中配置页面路径的前后缀

  • (3)访问页面路径正常 但是展示404

  • 七、SpringBoot整合Mybatis

      • 1、Spring+Mybatis整合思路
  • 2、SpringBoot整合Mybatis

    • (1)引入依赖
  • (2)编程步骤

  • (3)数据源相关的配置

  • (3)告知mapper文件所在路径 别名

  • (4)告知Dao接口所在包

  • 八、SpringBoot测试

      • 1、引入相关依赖,内部包含原有的测试依赖
  • 2、测试类和方法书写 考虑:测试时要启动SpringBoot的应用

    • (1)写一个父测试类,将SpringBoot中测试所需要的注解写在父测试类上
  • (2)不同实体类相关的测试就可以继承父测试类直接写测试了

  • 九、SpringBoot中开启jsp的热部署

      • 1、热部署
  • 2、在配置文件中进行配置就可以了

  • 十、SpringBoot切面编程

      • 1、切面编程Aop面向切面编程 切面=通知+切入点
  • 2、Spring怎么样完成AOP编程

    • a、开发通知 额外通知
  • b、aop相关设置

  • 3、SpringBoot怎么完成Aop编程 核心:注解

    • (1)引入相关依赖
  • (2)通知相关的注解:方法上

  • 4、SpringBoot中前置通知和后置通知

  • 5、SpringBoot中的环绕通知

一、 SpringBoot简介

==================================================================================

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不 再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应 用开发领域(rapid application development)成为领导者。

约定大于配置。

springboot(微框架) = springmvc(控制器) + spring(项目管理)

1、什么是SpringBoot?

Spring是全新框架

2、作用

简化Spring应用的初始化搭建 以及开发过程

简化初始搭建:通过特定的配置方式简化替代 这些配置Spring.xml Springmvc.xml web.xml(取消)

3、本质

SpringBoot本质就是基于Spring和SpringMVC的再封装

springboot(微框架) = springmvc(控制器框架) + spring(项目管理)

微框架(少量配置 简化开发)是微服务(SpringCloud)的所依赖的框架

4、SpringBoot的好处

  1. 创建独立的Spring应用程序

只有一个容器,不会出现像Spring和SpringMVC父子容器污染问题

提供Springboot jpa(等价于Mybatis框架)

  1. 应用中嵌入的Tomcat服务器,无需部署WAR文件,无需通过外部服务器部署

  2. 简化Maven配置

#初始化只需要两个依赖+Mybatis 只需要三个依赖就可以搭建SSM项目

  1. 自动配置Spring,自动使用spring和springmvc所有机制和功能

  2. 没有XML配置

5、搭建环境

(1)全局入口类

1、数量:一个SpringBoot应用中必须要存在一个入口类

2、名字:项目名+Application.javaxxx:项目名

3、位置:必须要在所有子包平级 com.tjcu.平级

4、**入口类中必须包含一个主函数 ** public static void main(String[] args){})

maven项目:

src/main/java

cccom.tjcu.entity

.dao

.service

XxxApplication.java

src/main/resources

application.yml

src/test/java

src/test/resources

(2)SpringBoot的配置文件

1、位置:根下 maven项目 必须放在src/main/resources

2、名字:名字必须叫application.xxx

后缀:.yml |.yaml .properties

yml文件 简介 高效 语法要求严格

.properties key=value 会冗余,可读性强,映射关系明显

二、第一个SpringBoot应用程序搭建

========================================================================================

0、环境版本要求

SpringBoot 2.2.5

Spring 5.x

Maven3.3以上(当前使用版本3.5.3)

JDK1.8+

Tomcat8.0+ 内置9.x的版本号

1、搭建开发环境(引入相关依赖)

基础2 parent web

org.springframework.boot

spring-boot-starter-parent

2.2.5.RELEASE

<maven.compiler.source>8</maven.compiler.source>

<maven.compiler.target>8</maven.compiler.target>

org.springframework.boot

spring-boot-starter

2、引入SpringBoot相关的配置文件

名字:application.yml

位置:根下 src/main/resource下

3、引入全局入口类

位置:和所有子包平级

名字:xxxApplication.java|Application.java

内容:必须存在一个主函数

com.tjcu

@SpringBootApplication

public class Application{

public static void main(String[] args){

/**

  • 自动Springboot应用

  • 参数1:入口类的类对象

  • 参数2:主函数的形参

*/

SpringApplication.run(Application.class,args);

}

}

@SpringBootApplication注解解析:表明当前项目启动SpringBoot配置,并标记SpringBoot的启动入口类。

  • spring版本号:2.2.5

  • 启动SpringBoot后

  • SpringBoot项目访问界面

4、开发一个控制器(书写一个Controller)

/**

  • @author 王恒杰

  • @date 2021/11/24 15:00

  • @Description:

*/

@Controller

@RequestMapping(“test”)

public class TestController {

@RequestMapping(“test1”)

@ResponseBody//响应Json的形式

public String test1(){

System.out.println(“--------springboot----------”);

//跳转 Springboot默认不支持jsp

return “first SpringBoot application”;

}

}

  • 注意事项:

1、SpringBoot应用内嵌服务器默认端口8080

2、SpringBoot应用访问时默认没有项目名

3、http://localhost:8080/test/test1

4、修改默认端口号和项目名:Application.yml

server: #端口号修改设置

port: 8989

servlet:

context-path: /Springboot #设置当前的应用名

5、返回页面

三、SpringBootApplication注解解析

==============================================================================================

@SpringBootApplication 复合注解,多个注解功能的集合

@Target({ElementType.TYPE}):``这个注解写在类上``<br />@Retention(RetentionPolicy.RUNTIME) ``会在运行时生效``<br />@Documented ``会生成注释文档``<br />@Inherited ``注解可以被继承

重点注解: <br />1、@SpringBootConfiguration :

作用:SpringBoot相关的配置 ,自动对Spring和SpringMVC进行初始化配置,

** 静态** (Spring.xml.Springmvc.xml)<br /><br />2、@EnableAutoConfiguration:<br />作用:最重要的一个注解

(1)将Spring和Springmvc默认的初始化配置进行实例化,在程序中创建工厂

(2)会自动配置第三方技术(Mybatis)【没用的依赖不要添加,会自动配置】<br /><br />3、@ComponentScan :完成注解扫描,默认扫描当前包及其子包所有包结构下的注解

/**

  • @author 王恒杰

  • @date 2021/11/24 14:45

  • @Description:

  • 入口类

*/

//@SpringBootApplication //注解 标识SpringBoot入口

@SpringBootConfiguration //配置Spring+Springmvc的初始化配置

@EnableAutoConfiguration //将配置Spring+Springmvc初始化配置实例化

@ComponentScan(value =“com.tjcu”)//扫描当前包及其子包结构下的注解

public class Application {

public static void main(String[] args) {

/**

  • 自动Springboot应用

  • 参数1:入口类的类对象

  • 参数2:主函数的形参

*/

SpringApplication.run(Application.class,args);

}

}

四、SpringBoot配置文件的拆分

======================================================================================

1、为什么要拆分配置文件

在实际开发过程中生产环境和测试环境有可能是不一样的,因此将生产中的配置和测试中的配置拆分开,是非常必要的,在springboot中也提供了配置文件拆分的方式

2、以生产中项目名称不一致为例:

(1)Application.yml 主配置

#主配置文件:

application.yml #用来书写相同的的配置

server:

port: 8080 #生产和测试为同一个端口

(2)开发中小配置文件application-.yml

#生产配置文件:

application-pord.yml

server:

context-path: /whj

(3)测试中小配置文件application-xxx.yml

#测试配置文件:

application-dev.yml

server:

context-path: /springboot

(4)上线中小配置文件application-xxx.yml

#上线配置文件:

application-dev.yml

server:

context-path: /tjcu

3、开发后小配置文件后我们需要在主配置文件中进行引用当前所需要的小配置文件

profiles[ˈproʊfaɪlz:轮廓

server: #端口号设置

port: 8989

spring:

profiles:

active: test #设置集合的小配置文件application-test.yml 设置当前的应用名

4、作用

避免反复修改配置 ,方便后期的维护

五、SpringBoot对象的创建方式

======================================================================================

1、Spring创建对象?

(1)简单对象和复杂对象区别
  • 简单对象:可以直接通过new关键字直接创建对象

  • 复杂对象:不能直接new的对象,就是复制对象(抽象类,接口,Connection)

  • 管理方式:FactoryBean 接口

class xxxFactoryBean implement FactoryBean{

Connection.getObject();

Class.forName(“driver”);

return DriverManager.getConnecction(“url”,“username”,“password”)

}

Class getObjectType(){

return Connection.class;

}

boolen isSingleton(){

return false;

}

交给Spring管理

2、SpringBoot如何创建对象?

核心:使用注解

(1)简单对象

在springboot中可以管理自定义的简单组件对象的创建可以直接使用注解形式创建。

1.使用 @Repository [rɪˈpɑːzətɔːri] @Service @Controller 以及@Component管理不同简单对象

  • 比如要通过工厂创建自定义User对象:

//负责创建简单对象

@Component(“User”)

//Sscope负责单例:Singleton 多例:prototype

@Scope(“prototype”)

public class User {

private Integer id;

private String username;

private String password;

  • 通过工厂创建之后可以在使用处任意注入该对象

如:在控制器中使用自定义简单对象创建

@Controller

@Scope(“prototype”)

@RequestMapping(“test”)

public class TestController {

/**

  • 在控制方法中注入User

*/

@Autowired

private User user;

@Autowired

private User user1;

@RequestMapping(“test1”)

/**

  • json形式返回页面

*/

@ResponseBody

public String test1(){

System.out.println(“--------test1-------”);

System.out.println(user);

System.out.println(user1);

return “test1 method”;

}

会出现多例,创建了两个不同的对象

(2)管理多个对象

@Configuration+@Bean:既能管理简单对象也能管理负责对象

@Configuration:使用位置:类上 标识当前类是一个配置类

@Bean:添加在方法上,对当前获取的对象进行配置 等价于bean标签

简单对象管理:

@Configuration

public class ObjectConfig {

/**

  • 返回值返回的是要创建的类型 方法名随意

  • @return

*/

@Bean(“User”)

@Scope(“prototype”)

public User getUser(){

// 书写对象的创建过程

return new User();

}

}

复杂对象管理:

六、SpringBoot集成JSP页面展示

========================================================================================

1、当前控制器中不能直接返回jsp逻辑名(页面的名字) 出现404

SpringBoot框架默认集成Thymeleaf

2、集成jsp页面

(1)引入jsp的集成jar包

jstl

jstl

1.2

org.springframework.boot

spring-boot-starter-tomcat

org.apache.tomcat.embed

tomcat-embed-jasper

(2)在应用中配置页面路径的前后缀
  • 在application.properties

#配置jsp页面的前后缀

spring.mvc.view.prefix=/

spring.mvc.view.suffix=.jsp

(3)访问页面路径正常 但是展示404
  • 原因:IDEA和SpringBoot集成的工具问题

  • 解决思路一:使用插件启动

在项目中添加SpringBoot相关插件,引入jsp运行插件

SpringBoot2

org.springframework.boot

spring-boot-maven-plugin

-Dfile.encoding=UTF-8

通过插件启动SpringBoot项目

效果:

@Controller

@Scope(“prototype”)

@RequestMapping(“test”)

public class TestController {

@RequestMapping(“test2”)

public String test2(){

System.out.println(“—test2----”);

return “index”;

}

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

MySQL全家桶笔记

还有更多面试复习笔记分享如下

Java架构专题面试复习

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

问题

  • 解决思路一:使用插件启动

在项目中添加SpringBoot相关插件,引入jsp运行插件

SpringBoot2

org.springframework.boot

spring-boot-maven-plugin

-Dfile.encoding=UTF-8

通过插件启动SpringBoot项目

效果:

@Controller

@Scope(“prototype”)

@RequestMapping(“test”)

public class TestController {

@RequestMapping(“test2”)

public String test2(){

System.out.println(“—test2----”);

return “index”;

}

最后

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档

[外链图片转存中…(img-qWjikt4s-1714964246505)]

还有更多面试复习笔记分享如下

[外链图片转存中…(img-MErB5Shz-1714964246505)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号