
JavaEE
文章平均质量分 59
以spring核心的IOC和AOP为线索,分析spring boot是如何一步步简化操作,实现从原来的可用变为好用
华工学长讲大数据毕设
关注我
展开
-
跨域问题的原理分析
跨域问题本质剖析,让你彻底搞懂跨域问题产生的原因原创 2022-08-18 15:55:07 · 1281 阅读 · 0 评论 -
swagger2报错java.lang.NumberFormatException: For input string: “swagger-ui”大坑
There was an unexpected error (type=Bad Request, status=400).Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "swagger-ui.html"原创 2021-02-02 09:59:32 · 544 阅读 · 1 评论 -
SpringMVC解决post和get请求中文乱码
post请求中文乱码:我们需要在添加一个过滤器(这个过滤器spring已经帮我们写好了),我们只需在web.xml的<web-app></web-app>标签里面填写如下配置就好了。<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncoding原创 2020-06-28 12:07:28 · 410 阅读 · 0 评论 -
Spring boot整合Myabtis的底层原理
Mybatis的自动配置都是在MybatisAutoConfiguration.class这个类中,所以我们先找到这个类找到sqlSessionFactory这个方法可以看到它会将数据源,核心配置文件,以及mapper映射文件等等注工厂,最后产生一个工厂实例点开getObject,看到底层返回的是一个sqlSessionFactory再回到MybatisAutoConfiguration.class中,可以看到sqlSessionFactory,是传给了sqlSessionTempl原创 2020-06-12 13:48:52 · 208 阅读 · 0 评论 -
Spring家族体系的介绍
spring家族体系图:Spring Core:开发单体应用,提供便捷的数据库访问(比如spring对jdbc进行简单封装的Template),还提供mvc功能(基于ioc跟aop的进一步封装实现),通过ioc,aop连接在一起,使得我们的程序能够做到低耦合,可扩展性。由此不难看出Spring Core的核心是IOC和AOPSpring Boot:提高程序开发效率,使得程序从可用变为好用Spring Cloud:推动微服务架构的落地,让不具备微服务的小型互联网公司也能享受到开箱即用的微服务解原创 2020-05-23 17:40:31 · 949 阅读 · 0 评论 -
快速搭建一个web工程(基于spring-boot框架)
首先打开idea,点击新建一个工程,选择Spring Initializr点击next,根据需要修改Group和Artifact再点击next,选择Web,点击Spring Web,搭建一个简单的web工程点击finish后,便可以搭建出一个基于spring boot框架的web工程,其结构图如下点开pom.xml,右击Diagrams,再点击show Dependencies,可以看一下sping-boot框架为我们导入的jar包由图可以看出spring-boo原创 2020-05-17 19:59:24 · 428 阅读 · 0 评论 -
Bean的作用域和生命周期(基于Spring boot)
在谈bean的作用域之前,我们先来spring boot中的两个注解@Component和@Bean@Component和@Bean都是用来定义bean并讲bean添加到ioc容器,但是两者在使用上又有不同@Component:一般是注解在类上面,并且可以在括号里注明这个bean的一个别名,比如上面这个bean的别名就是aa@Component("aa") //托管到ioc容器中@Scope("prototype")@ConfigurationProperties(prefix = "原创 2020-05-25 23:17:29 · 615 阅读 · 0 评论 -
从依赖注入到Spring IOC(图文通俗易懂)
Spring IOC(Inversion of Control) :控制反转Spring Core最核心的部分 了解它之前先来了解一下依赖注入(Dependency Inversion)在了解DI之前,我们先来了解一下原始的设计,即上层建筑依赖下层建筑(以设计行李箱为例)这样的设计看上没什么问题,但是可维护性极差。假如根据市场变动轮子要改,那么底盘,箱体,行李箱都得改我们可以通过代码来看一下这种上层建筑依赖下层建筑的致命之处假如现在要动态修改轮子的大小可以看到仅仅改边原创 2020-05-23 15:33:42 · 245 阅读 · 0 评论 -
bean是如何装载到Spring IOC容器的(基于Spring boot)
首先快速搭建一个web项目(基于spring boot)创建一个Person(实体类)public class Person { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName原创 2020-05-23 16:24:09 · 708 阅读 · 1 评论 -
AOP思想的介绍及Spring AOP的简单使用
关注点分离:不同的问题交给不同的部分去解决面向切面编程AOP正式此种技术的体现 通用化功能代码的实现,对应的就是所谓的切面(Aspect) 业务功能代码和切面代码分开后,架构将变成高内聚低耦合 确保功能的完整性:切面最终需要被合并到业务中(织入)AOP的三种织入方式:编译时织入:需要特殊的java编译器,如AspectJ 类加载时织入:需要特殊的java编译器,如AspectJ和AspectWerkz 运行时织入:Spring采用的方式,通过动态代理的方式,实现简单问题分析:假如现原创 2020-05-23 23:32:00 · 137 阅读 · 0 评论 -
从代理模式到Spring AOP的实现原理
要讲Spring AOP之前,我们必须先了解什么是代理模式代理模式:接口+真实实现类+代理类以支付宝支付为例,我们用支付宝购买东西从来只需要关系我们支付了没有,而至于钱是如何从银行转到商家这个过程我们是不关心的,这个过程就是代理类(也就是支付宝)帮我们处理的的。下面我们来看看这个过程的具体代码实现代码实现:首先先创建一个接口public interface Payment { void pay();}再创建一个真实实现类(也就是用户)来实现这个接口public c原创 2020-05-24 23:04:08 · 147 阅读 · 0 评论 -
Mybatis的介绍与单独使用
Mybatis的介绍Mybatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装使开发者只需要关注SQL本身,不再需要花费精力去处理例如注册驱动connection ,创建statement,手动设置参数,结果集检索等jdbc繁杂的过程代码。Mybatis的架构图Mybatis的入门程序首先导入mybatis的相关jar包及数据库驱动根据架构图可知,首先需要的是sqlMapConfig.xml(Mybatis核心配置配置文件)还有各种映射文件sql..原创 2020-06-07 17:39:05 · 267 阅读 · 0 评论 -
Mybatis的高级使用
在Mybatis的介绍与简单使用,已经介绍了Mybatis的基本使用(包括了简单的输入输出类型,pojo输入输出类型,以及一些简单的sql),而这篇博客主要是来讲一些复杂的输入输出类型,动态sql,已经数据库表之间一对一,一对多的关联pojo包装类输入类型新建一个pojo包装类QueryVo.javapackage pojo;import java.io.Serializable;import java.util.List;/* * */public class Que.原创 2020-06-08 15:41:57 · 283 阅读 · 1 评论 -
Spring整合Mybatis之Mapper动态代理开发
要整合Spring跟Mybatis那就必须导入Spring的包,Mybatis的包,Mybatis-Spring的整合包,以及连接数据库所需要的包,单独使用Mybatis时,我们需要在Mybatis核心配置文件(sqlMapConfig,xml)中配置连接数据池,各个映射文件,然后再由这些配置文件作为"原材料"创建一个SqlSessionFactorySqlSessionFactory再根据我们传入的接口,生成一个动态代理对象现在这些事不需要Mybatis来做了,全部交给Spri..原创 2020-06-08 23:07:11 · 348 阅读 · 0 评论 -
Mybatis逆向工程的操作步骤与基本使用
当我们在做一个项目的时候,需要对数据库的每一张表都写一个对应的javaBean,而且还要写一些对这个javaBean的基本增删改查操作,在表数量不多的情况下,我们是可以自己创建的,但当表数量达到上百上千张时,创建大量的javaBean无疑是一个繁重的体力活。...原创 2020-06-09 09:24:16 · 365 阅读 · 0 评论 -
spring-boot整合基本jdbc(基于oracle数据库)
快速搭建一个web工程搭建完一个web工程,要想连接上oracle数据库,还得进行以下操作(1)在pom.xml中引入jdbc连接 <!--jdbc连接--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactI原创 2020-05-17 21:09:06 · 1948 阅读 · 0 评论 -
spring-boot常用数据源及对druid的整合
spring-boot整合jdbcspring-boot整合jdbc后,spring-boot可以支持以下数据源,默认是使用tomcat-jdbc数据源。 对于spring-boot支持的数据源,如果要使用该数据源,必须进行以下操作(以dbcp2为例) (1)在application.yml中指定type,并进行相关配置spring: datasource: username: scott password: abc123 url: jdbc:o...原创 2020-05-18 09:40:50 · 399 阅读 · 0 评论 -
spring-boot整合mybatis的两种方式(基于oracle的存储过程返回结果集)
spring-boot整合druidspring-boot在整合好druid后,接着来整合mybatis.整合mybatis有两种方式,注解版和配置文件版针对oracle,scott用户下的emp表,先建一个对应的javabeanpackage com.oracle.bean;import org.springframework.context.annotation.Bean;import javax.xml.crypto.Data;import java.sql.Date;原创 2020-05-18 10:46:39 · 561 阅读 · 0 评论 -
高频面试题之SpringBoot的事务管理
Spring boot的事务管理非常简单,只需要在需要开启事务的方法添加@Transactional注解。传播行为,隔离级别,事务失效的情况原创 2020-05-26 14:05:05 · 1119 阅读 · 0 评论 -
Spring MVC的入门介绍与使用
什么是MVC模式?MVC全名是Model View Controller ,是模型(model)——视图(view)——控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑,数据,界面显示分离的方法组织代码,将业务逻辑聚焦到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。最简单的,最经典的就是Jsp(view)+Servlet(controller)+JavaBean(model)什么是MVC框架?是为了解决传统MVC模式(jsp+Ser.原创 2020-05-27 10:21:41 · 163 阅读 · 1 评论 -
Spring MVC的基本使用详解
常见的注解:@RequestMapping注解@RequestMapping(value="item")或者@RequestMapping("/item"),value的值可以是数组,可以将多个的url映射到同一个方法 在class上添加@RequestMapping(url)指定通用请求前缀,来限制该类下的所有方法请求url必须以请求前缀开头 还可以限定请求的方法。@RequestMapping(method=RequestMethod.GET)相当于@GetMapping,@RequestMa原创 2020-05-30 21:04:54 · 395 阅读 · 0 评论 -
spring boot的web开发(静态资源映射规则)
在以前spring mvc时代,我们是将静态资源放在WebContent文件夹下。只要在前端控制器中没有被拦截,那么我们就可以通过(例如:http://localhost:8080/springmvc-mybatis/js/index.js)这样的访问路径,访问我们的静态资源。那么在spring boot时代,是怎么去访问静态资源的呢?像以前在spring mvc时代,我们要用这个框架,就得把它给整合进来(导包+配置前端控制器+处理器映射器+处理器适配器+视图解析器等等),拦截规则也是我们在前端控制原创 2020-06-05 12:06:01 · 178 阅读 · 0 评论 -
spring boot的web开发(thymeleaf模板引擎的介绍和使用)
什么是模板引擎?所谓模板引擎就是将数据(Data)填充到页面模板(Template)里面,最终输出一个用户需要的页面常见的模板引擎就有JSP,Velocity,Freemarker,Thymeleaf.在以前ssm的时代,项目打包的方式是以war包的形式可以正常解析jsp,但是现在spring boot是以jar包的形式,无法解析jsp,所以jsp这个模板引擎也就是慢慢被淘汰,而spring boot官方推荐使用的是Themeleaf这个模板引擎,这个模板引擎使用很简单,功能更强大。不管是以原创 2020-06-05 17:19:52 · 224 阅读 · 0 评论 -
spring boot的web开发(对Spring MVC的自动配置和全面拓展)
对Spring MVC的自动配置spring boot在WebMvcAutoConfiguration这个类中已经做了自动配置(包括了前端控制器,处理器映射器,处理器适配器,视图解析器等等),具体的自动配置原理就不细讲了,我们不难从WebMvcAutoConfiguration.class中看到这几大组件前端控制器处理器映射器处理器适配器视图解析器我们不需要像以前一样去整合Spring MVC,直接用就行了,具体的用法我在Spring MVC的基本详细使用中已经做了.原创 2020-06-06 12:00:03 · 271 阅读 · 0 评论