- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 Spring Boot starter(自定义启动器)
1. Spring Boot运行原理Spring 4.x中提供基于条件来配置Bean的能力,Spring Boot的自动配置也基于这一原理。Spring 关于自动配置的源码在spring-boot-autoconfiguration这个jar包中。(1)注解@SpringBootApplicaiton@SpringBootApplicaiton注解由@SpringBootConfigu...
2020-03-14 18:20:17 316
原创 Spring Boot整合swagger(使用swagger-spring-boot-starter)
在pom.xml中引入swagger依赖包在application.properties中添加配置配置内容参考如下:# swagger配置swagger.title=对外开放接口API文档swagger.description=HTTP对外开放接口swagger.version=1.0.0swagger.license=Apache License, Version 2.0s...
2020-01-20 14:34:35 5171 1
原创 Spring Boot整合swagger
在pom.xml中引入swagger依赖包添加Swagger配置类在config下新建SwaggerConfig类,配置类代码如下(类的位置只要Spring能扫描并装载到就可以,类名称也是任意的):@Configuration@EnableSwagger2public class SwaggerConfig { @Bean public Docket api() ...
2020-01-20 14:30:16 203
原创 Spring MVC整合swagger
Spring MVC整合swagger添加swagger配置类在config下新建SwaggerConfig类,配置类代码如下(类的位置只要Spring能扫描并装载到就可以,类名称也是任意的):@Configuration@EnableSwagger2@EnableWebMvc@ComponentScan("com.test.wjb.www.controller") //con...
2020-01-20 14:26:41 285
原创 Spring AOP详解
1. Spring AOP实现方式AOP并不是Spring框架特有的,Spring只是支持AOP编程的框架之一。在Spring中有4种方式去实现AOP的拦截功能:使用ProxyFactoryBean和对应的接口实现AOP使用XML配置AOP使用@AspectJ注解驱动切面使用AspectJ注入切面在Spring AOP的拦截方式中,常用的是@AspectJ注解的方式实现的切面,有时候...
2020-01-04 15:33:06 551
原创 AOP常用术语
1、为什么要用AOP1)就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序去做了。用了AOP能让你少写很多代码,这点就够充分了吧。2)就是为了更清晰的逻辑,可以让你的业务逻辑去关注自己本身的业务,而不去想一些其他的事情。这些其他的事情包括:安全,事物,日志等等。2、那些AOP术语切面(Aspect)切面是通知和切入点的结合。现在发现了吧,没...
2020-01-04 15:11:26 483
原创 Spring IoC容器
1. Spring IoC容器设计Spring IoC容器设计主要是基于BeanFactory和ApplicationContenxt两个接口,其中ApplicationContext也是BeanFactory的子接口之一。BeanFactory是Spring IoC容器最底层的接口,ApplicationContext是其高级接口之一。下面是BeanFactory的源码:...
2019-12-06 22:23:07 86
原创 request对象包含的部分方法
//测试的请求url, get方法 //"http://localhost:8080/user/login?username=a" //获取请求方法 request.getMethod(); //返回"GET" //获取请求协议 request.getScheme(); //返回"http" //获取请求域名(IP地址)...
2019-11-29 12:20:54 292
原创 MyBatis构建SqlSessionFactory过程
MyBatis运行过程大致分为两步:1. 利用XMLConfigBuilder类读取配置文件缓存到Configuration对象(单例),用来创建SqlSessionFactory对象2. SqlSession的执行过程构建SqlSessionFactory过程:1. 通过org.apache.ibatis.builder.xml.XMLConfigBuilder解析MyBa...
2019-11-28 23:25:37 743
原创 lazyLoadingEnabled和aggressiveLazyLoading作用
N+1问题:假设现在有N个关联关系完成了级联,那么只要再引入一个关联关系,就变成了N+1级联,所有级联的SQL都会被执行,显然会有很多我们不需要的数据被加载进来,这就造成了极大的资源浪费。引入延迟加载的目的:为了处理N+1问题(级联加载的性能问题)MyBatis的配置文件中两个全局配置可以配置延迟加载 ,如下: <settings> <!-- 全局...
2019-11-20 23:56:56 3363 5
原创 MyBatis动态SQL
MyBatis动态SQL基本元素元素作用备注if判断语句单条件分支判断choose(when, otherwise)相当于java中的switch case语句多条件分支判断trim(where, set)辅助元素,用于处理特定的SQL拼装问题,比如去掉多余的and, or, 逗号等用于处理特定的SQL拼装问题foreach循环语句常用...
2019-11-20 22:43:37 139
原创 JDK动态代理实现代码示例
被代理对象接口被代理对象实现类InvocationHandler实现类测试类运行结果其中,创建代理对象的方法也可以分开写,InvocationHandler实现类中只传入被代理对象。然后在获取代理类对象中返回代理对象,如下:调用方法如下:...
2019-10-17 10:03:50 572
原创 MySQL时区问题
当设置serverTimezone=UTC,连接不报错,但是我们在用java代码插入到数据库时间的时候却出现了问题,会有8个小时的时差。原因是UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。需要在URL上设置时区参数//北京时间东八区serverTimezone=GMT%2B8 //或者使用上海时间serverTimezone=A...
2019-05-15 14:11:48 749
原创 Spring容器初始化完成后执行指定任务
1. 创建定时任务@Component("monitorTask")@Scope("prototype")public class MonitorTask extends TimerTask { private static final Logger LOGGER = LoggerFactory.getLogger(MonitorTask.class); @Overri...
2019-05-09 21:05:51 818
原创 Spring内置事件
1、ApplicationContextEvent是spring内置事件的父抽象类,构造方法传入spring的context容器,同时也有获取spring的context容器的方法。2、ContextRefreshedEvent当spring容器初始化或刷新时,会触发此事件。此事件在开发中常用,用于在spring容器启动时,导入自定义的bean实例到spring容器中。3、Co...
2019-05-09 21:05:07 524
原创 Git创建新的远程仓库后,将代码提交到远程仓库的命令(本地和远程已建立密钥情况下)
到本地项目所在文件夹后,打开git命令行git initgit add -A (添加所有内容)git commit -m "first commit"git remote add origin 远程仓库的SSH路径git push -u origin master完成提交...
2019-05-09 00:46:35 1725
原创 Maven依赖包查询地址
1、查询地址1 http://search.maven.org/#browse2、查询地址2 http://mvnrepository.com/
2019-04-29 11:53:42 1667
原创 Java编程思想 - Java反射机制(一)Class对象、类加载器、泛化的Class引用、cast()转型方法
RTTI含义:运行时类型信息Class对象和类加载器Class对象:包含了与类有关的信息,每一个类都有一个Class对象类加载器:类加载器是Java虚拟机(JVM)的一个子系统,所有的类都是在对其第一次使用时,动态加载到JVM中的。当程序创 建一个对类的静态引用时,就会加载这个类。因此证明了构造器也是类的静态方法,用new操作费创建类的新对象也会被当做对类的静态成员引用。类加载时,类加载器...
2019-03-21 20:52:56 645
原创 MySQL回顾(二)SQL查询(单表)
create table product(pid int primary key auto_increment,pname varchar(20),price double,pdate timestamp);#自动增长列:auto_increment,要求:1,必须整型(int) 2.必须是主键insert into product values (null,‘谭妮平’,0.01,n...
2019-02-18 16:45:08 127
原创 MySQL回顾(一)数据库操作、表操作、数据操作(增删改)
一、对数据库的操作创建数据库create database 数据库名;设置编码:create database 数据库名 character set 编码方式;查看数据库查看所有数据库:show databases;查看某个数据库的编码方式:show create database 数据库名;删除数据库drop database 数据库名;其他数据库操作命令切换数据库:use...
2019-02-17 18:04:18 129
转载 getParameter和getAttribute区别
对getParameter过程,如下图: 对getAttribute过程,如下图: 两者区别: ①getParameter()获取的是客户端设置的数据。 getAttribute()获取的是服务器设置的数据。 ②getParameter()永远返回字符串 getAttribute()返回值是任意类型 既然parameter和attribute都是传递参数,...
2019-01-21 22:25:36 182
原创 SpringMVC学习(六) 异常处理器
SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。异常处理思路: 系统中异常包括两类:预期异常(checkedException)和运行时异常RuntimeException(unCheckedException),前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。...
2019-01-21 22:21:50 121
原创 SpringMVC学习(五) @RequestMapping使用及Controller层方法返回值
1. @RequestMapping的使用 用@RequestMapping注解可以定义不同的处理器映射的规则 (1)URL路径映射(添加在方法上) @RequestMapping(value = " URL"),其中value=可以省略。 如@RequestMapping(value = " /WEB-INF/login.jsp") ...
2019-01-21 22:11:44 1556
原创 SpringMVC学习(四) SpringMVC参数绑定
1. 默认的参数绑定 (1)HttpServletResquest: 通过request对象获取请求参数的信息。 (2)HttpServletResponse: 通过response对象处理响应信息。 (3)HttpSession: 通过session对象获得session中的信息。 (4)Model/ModelMap: 用于向页面传递参数,...
2019-01-21 21:49:32 286
原创 SpringMVC学习(三) SpringMVC三大组件配置
一. SpringMVC前端控制器properties文件 目录:spring-webmvc-4.1.3.RELEASE.jar包下的/org/springframework/web/servlet/DispatcherServlet.properties 二. 处理器映射器 默认配置的类已过期,Spring 3.2后使用RequestMappingHand...
2019-01-19 14:00:55 277
原创 SpringMVC学习(二) SpringMVC搭建
1. 创建web工程2. 导入相关jar包 3. 加入配置文件(web.xml、springmvc.xml) (1)在web.xml中配置前端控制器<!--配置前端控制器DispatcherServlet--><servlet> <servlet-name>springmvc</servlet-name>...
2019-01-18 23:46:39 141
原创 SpringMVC学习(一) SpringMVC介绍
JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts2和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架,它是Spring框架的一部分。SpringMVC架构:SpringMVC是Spring的一部分:SpringMV核心架构:具体流程:(1)首先用户发送请求——>Dispat...
2019-01-17 21:28:59 162
原创 Mybatis配置*Mapper、POJO、接口代码生成器
mybatis-generator插件可自动生成实体类和mapper还有xml配置文件。在IDEA中只需修改插件中的generatorConfig.xml文件,然后运行配置文件就可以得到说需要的类,接口,xml文件。 1. 新建Maven工程 2. 在pom.xml中添加插件 <plugin> <groupId>org.mybatis.genera...
2018-12-23 15:53:34 245
转载 Java中的基础----堆与栈的介绍、区别
堆:(对象)引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。堆内存主要作用是存放运行时创建(new)的对象。(主要用于存放对象,存取速度慢,可以运行时动态分配内存,生存期不需要提前确定)栈:(基本数据类型变量、对象的引用变量)基本数据类型的变量(int、short、long、byte、float、double、boolean、cha...
2018-11-04 16:03:26 92
原创 struts2获取request对象的四种方式
struts2中,有四种方式获取request对象的方式,实现时有解耦和耦合之分解耦:使得我们使用struts2测试时不需要启动服务器,在一定的程度上,能提高我们的开发效率.具体实现思路,通过ActionContext对象获取,代码如下: //第一种获取requet对象方法---HttpServletRequest对象的attributes(解耦) Map<String,...
2018-08-20 21:12:19 2574
原创 jQuery AJAX中文乱码问题
1. jQuery AJAX 请求,后台收到为乱码可以显式设置contentType的编码为utf-8, 后台一般都能正常解码例如:[javascript] view plain copy <meta name="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"&g...
2018-06-23 11:45:59 1351
转载 Attribute和Parameter区别
attribute(属性):服务器端设置的属性 parameter(参数):客户端传递过来的参数 由此可见 获取两个参数时候 getAttribute()只能获取setAttribute(,)设置的数据; getParameter()获取的是客户端用户表单(form)提交的数据; 数据类型不同 Attribute()可以使任意一个Object类型 Parameter()无论客户端传来什么,服务器都...
2018-06-18 15:57:40 1342 1
转载 Java并发编程:深入剖析ThreadLocalJava并发编程
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析Thre...
2018-06-05 10:22:05 89
java操作excel
2018-06-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人