Fork me on GitHub
BangjinHu's Blog

让优秀成为习惯,让知识成为信仰


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 本站搜索

Spring Cache

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Spring
字数统计: 310 | 阅读时长 ≈ 2

注意:所有文章除特别说明外,转载请注明出处.

注意:这里自定义FreeMarkerView的目的是为了放一些公共的变量到FreeMarkerView模板里面。

阅读全文 »

Spring源码 - 主题

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Spring源码
字数统计: 1,272 | 阅读时长 ≈ 5

注意:所有文章除特别说明外,转载请注明出处.

## Spring 容器高级主题 --- title: Spring 高级主题 tags: - Spring categories: - Spring copyright: true showdonate: true date: 2019-10-15 09:22:26 comments: true password: ---

注意:所有文章除特别说明外,转载请注明出处.

Spring容器技术内幕

1 内部工作机制

Spring 的 AbstractApplication 是 ApplicationContext 的抽象实现类,该抽象实现类的 refresh() 方法定义了Spring容器在加载配置文件后的各项处理过程,这些处理过程清晰刻画Spring容器启动时所执行的各项操作。

//refresh()方法内部定义的执行逻辑
//1. 初始化BeanFactory Spring将配置文件信息装入容器的Bean定义注册表(BeanDefinitionRegistry)中,但是此时Bean还没有初始化。
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();

//2. 调用工厂后处理器 根据反射机制从 BeanDefinitionRegistry 中找出所有实现了 BeanFactoryPostProcessor 接口的Bean,并调用其 postProcessBeanFactory() 接口方法。
invokeBeanFactoryPostProcessors();

//3. 注册Bean后处理器 根据反射机制从 BeanDefinitionRegistry 找到所有实现了 BeanPostProcessor 接口的Bean,并将它们注册到容器Bean后处理器的注册表中。
registerBeanPostProcessors();

//4. 初始化消息源 初始化容器的国际化消息资源
initMessageSource();

//5. 初始化应用上下文事件广播器 初始化应用上下文事件广播器。
initApplicationEventMulticaster();

//6. 初始化其它特殊Bean:由具体子类实现
onRefresh();

//7. 注册事件监听器
registerListeners();

//8. 初始化所有单实例的Bean,使用懒加载模式的Bean例外 初始化所有Bean之后将它们放在Spring容器的缓存池中。
finishBeanFactoryInitialization(beanFactory);

//9. 完成刷新并发布容器刷新事件 创建上下文刷新事件,事件广播器负责将这些事件广播到每个注册的事件监听器中。
finishRefresh();
阅读全文 »

SpringMVC 整合 Mybatis

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 SpringMVC
字数统计: 1,417 | 阅读时长 ≈ 8

注意:所有文章除特别说明外,转载请注明出处.

Spring SpringMVC 整合 MyBatis

整合DAO层

1.MyBatis全局配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- setting配置根据需要再添加 -->
    <!-- 配置别名 -->
    <typeAliases>
        <package name="ssm.po"/>
    </typeAliases>

    <!-- mapper这里不需要配置了,因为跟spring整合后,在spring那边会进行mapper的扫描 
        但必须遵循:mapper.xml和mapper.java必须同名且在一个目录
    -->
</configuration>

提示:这里可以看出整合过程中已经没有什么内容了,因为数据源 mapper这些都交给Spring去管理。

阅读全文 »

Spring 源码解析

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Spring
字数统计: 6,226 | 阅读时长 ≈ 27

注意:所有文章除特别说明外,转载请注明出处.

Spring 源码解析

IOC

(Inversion of Control):控制反转

控制:资源的获取方式

​ 主动式:(要什么资源自给创建即可)

1
2
3
4
5
6
7
​	BookServlet{

​ BookService bs = new BookService();

​ AirPlane ap = new AirPlane();//复杂对象的创建是一个比较庞大的工程

​ }

被动式:资源的获取不是我们自己创建,而是交给容器来管理,创建和设置。

1
2
3
4
5
6
BookServlet{
BookService bs ;
public void test(){
bs.checkout();//
}
}

容器:管理所有得组件(有功能的类),假设BookServlet受容器管理,BookService也是受容器管理的;

那么容器可以自动探查出那些组件(类)需要用到另一个组件,容器帮我们创建BookService对象,并赋值。

==容器:主动获取变为自动接收。==

阅读全文 »

SpringBoot 错误总结

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 SpringBoot
字数统计: 242 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

1.错误:java.lang.UnsatisfiedLinkError: F:\Software\Apache-Tomcat\apache-tomcat-7.0.90\bin\tcnative-1.dll: Can’t load AMD 64-bit .dll on a IA 32-bit platform

解决:直接在网上下载一个 tcnative-1.dll 64位的复制到tomcat/bin目录下即可,这里是因为两者冲突造成。

阅读全文 »

SpringBoot 配置 Redis

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 SpringBoot
字数统计: 401 | 阅读时长 ≈ 2

注意:所有文章除特别说明外,转载请注明出处.

SpringBoot集成Redis

概念

在Java中与redis连接的驱动有很多,目前广泛使用的是Jedis,其它的还有Lettuce/Jredis和Srp。Spring提供一种RedisConnectionFactory接口,通过此接口可以生成一个RedisConnection接口对象,而该接口对象是对Redis底层接口的封装。

RedisTemplate

阅读全文 »

SpringBoot 配置 Shiro

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 SpringBoot
字数统计: 588 | 阅读时长 ≈ 3

注意:所有文章除特别说明外,转载请注明出处.

1.添加Shiro依赖

<!-- shiro 配置 -->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.3.2</version>
</dependency>

2.自定义Realm

阅读全文 »

Spring

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 Spring
字数统计: 11,038 | 阅读时长 ≈ 45

注意:所有文章除特别说明外,转载请注明出处.

Spring - FD

Spring提供一种方法管理你的业务对象,主要有两个功能为我们的业务对象管理提供便捷

Spring整合Web项目的底层原理

这一过程表示在加载配置文件和创建对象过程,在服务器启动时完成。

阅读全文 »

SpringMVC 数据校验

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 SpringMVC
字数统计: 268 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

SpringMVC 的数据校验

在SpringMVC中使用Hibernate的校验框架Validation。

阅读全文 »

SpringMVC 拦截器

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 SpringMVC
字数统计: 691 | 阅读时长 ≈ 3

注意:所有文章除特别说明外,转载请注明出处.

SpringMVC 中的拦截器

Spring提供了HandlerInterceptor接口和HandlerInterceptorAdapter适配器。实现这个接口或继承此类,就可以实现自己的拦截器。接口HandlerInterceptor包含三个方法,每个方法的参数handler,用来指向下一个拦截器。此类似于Servlet开发中的Filter,用于对请求进行拦截和处理。

阅读全文 »
1…678…22
Bangjin-Hu

Bangjin-Hu

212 日志
73 分类
73 标签
RSS
GitHub email 微博 知乎 iProgramer_ing
0%
© 2018 — 2020 Bangjin-Hu | Site words total count: 486.7k