java后端
日G一卒
java高级开发,日拱一卒
展开
-
前后端分离
、前后端分离的好处(1)彻底解放前端(2)提高工作效率,分工更加明确。(3)局部性能提升(4)降低维护成本2、前后端分离的概念后台只需要提供API接口,前端调用Ajax实现数据呈现3、场景和要求对于前后端分离的应用场景,不是所有的场景都适合,但是大多数项目都能够通过前后端分离实现。大多数后台应用我们可以做成SPA应用(单页应用),而单页应用最主要的特点是局部刷新,这通过前端控制路由...原创 2019-10-05 13:22:00 · 249 阅读 · 0 评论 -
Springboot整合thymeleaf模板
Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。Thymelea...原创 2019-08-10 10:09:39 · 169 阅读 · 0 评论 -
Spring的bean实例化过程
以XmlBeanFactory为例,最简单的取bean方式是:BeanFactory factory = new XmlBeanFactory(new FileSystemResource("D:\\workspace\\JavaApplication2\\src\\javaapplication2\\spring\\beans.xml")); Car obj = (...原创 2019-08-10 08:05:50 · 577 阅读 · 0 评论 -
表达式符号
Thymeleaf对于变量的操作主要有$*#三种方式:变量表达式: ${…},是获取容器上下文变量的值.选择变量表达式: *{…},获取指定的对象中的变量值。如果是单独的对象,则等价于${}。消息表达式: #{…}表达式与th:text一起使用,加载数据源中的消息,用于国际化链接网址表达式: @{…},获取网址链接1.${…}获取变量 传递单一变量后台代码:前台代码:运行结...原创 2019-08-13 17:37:58 · 1404 阅读 · 0 评论 -
Thymeleaf select 使用 和多select 级联选择
1.使用select 并且回绑数据;页面:状态:<select name="status" th:field="*{status}" id="idstatus" class="input-select" th:value="*{status}"> <option value="">--请选择--</option> <option th:each=...原创 2019-08-13 17:27:37 · 5130 阅读 · 1 评论 -
Thymeleaf th:include、th:replace使用
最近做到页面数据展示分页的功能,由于每个模块都需要分页,所以每个页面都需要将分页的页码选择内容重复的写N遍,如下所示:重复的代码带来的就是Ctrl+C,Ctrl+V ,于是了解了一下thymeleaf的fragment加载语法以及th:include、th:replace的区别,得以解决。首先在pom.xml引入thymeleaf的依赖<dependency><grou...原创 2019-08-13 17:19:23 · 522 阅读 · 0 评论 -
THYMELEAF 如何用TH:IF做条件判断
TestController增加一个布尔值数据,并且放在model中便于视图上获取package com.how2java.springboot.web;import java.util.ArrayList;import java.util.Date;import java.util.List; import org.springframework.stereotype.Contro...原创 2019-08-13 16:03:10 · 36433 阅读 · 0 评论 -
Shiro表结构设计
表设计开发用户-角色-权限管理系统,首先我们需要知道用户-角色-权限管理系统的表结构设计。在用户-角色-权限管理系统找那个一般会涉及5张表,分别为:1.sys_users用户表2.sys_roles角色表3.sys_permissions权限表(或资源表)4.sys_users_roles用户-角色关联表5.sys_roles_permissions角色-权限关联表(或角色-资源关联...原创 2019-07-28 21:14:49 · 827 阅读 · 0 评论 -
Spring中Bean的生命周期
首先我们大家应该知道spring 中有三种供 spring中bean 生存的容器: BeanFactory 、 ApplicationContext 、webApplicationContext 。其中ApplicationContext 和 webApplicationContext 基本一样,webApplicationContext就是有一些web专用的东西。所有这里就只介绍BeanFact...原创 2019-08-08 14:48:09 · 203 阅读 · 0 评论 -
Spring中Bean的概念
一、Bean的定义<beans…/>元素是Spring配置文件的根元素,<beans…/>元素可以包含多个<bean…/>子元素,每个<bean…/>元素可以定义一个Bean实例,每一个Bean对应Spring容器里的一个Java实例定义Bean时通常需要指定两个属性。Id:确定该Bean的唯一标识符,容器对Bean管理、访问、以及该Bean的依...原创 2019-08-08 14:37:17 · 285 阅读 · 0 评论 -
springboot---整合shiro
Shiro是一个非常不错的权限框架,它提供了登录和权限验证功能1.创建数据库脚本SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for module-- ----------------------------DROP TABLE IF EXI...原创 2019-07-28 19:02:26 · 144 阅读 · 0 评论 -
使用redis做为MySQL的缓存
介绍在实际项目中,MySQL数据库服务器有时会位于另外一台主机,需要通过网络来访问数据库;即使应用程序与MySQL数据库在同一个主机中,访问MySQL也涉及到磁盘IO操作(MySQL也有一些数据预读技术,能够减少磁盘IO读写,此部分后续继续研究),总之,直接从MySQL中读取数据不如直接从内存中读取数据来的效率高。为了提高数据库访问效率,人们采用了各种各样的方法,其中方法之一就是使用一个给予内存...原创 2019-07-28 15:40:24 · 273 阅读 · 0 评论 -
Spring配置AOP切入点execution详解
例: execution (* com.sample.service…*. *(…))整个表达式可以分为五个部分:1、execution()::表达式主体。2、第一个*号:表示返回类型, *号表示所有的类型。3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service包、子孙包下所有类的方法。4、第二个*号:表示类名,*号表示所有的类。...原创 2019-08-10 10:22:07 · 534 阅读 · 0 评论 -
Spring底层控制反转解耦合(IOC)
简单的例子解释IOC控制反转进行解耦合一、相关概念(1)解耦合解耦合就是把程序中互相不相关或有限相关的模块分割开来,把不同模块互相之间的关系用接口进行准确定义,解耦前,两个模块之间共享所有信息;(2)作用解耦后,需要共享的信息呗准确地定义在接口中,并确定信息的流向,解耦合可以令程序变得清晰,把不该暴露的实现细节隐藏,使代码的修改简单化,同时使程序结构灵活,通过静态多态或动态多态,一个模块...原创 2019-08-10 13:46:06 · 395 阅读 · 0 评论 -
java全栈
前端:HTML/HTML5、CSS/CSS3、Javascript、jQuery、RequireJS、AngularJS、Vue后端:Java、Struts2/Spring MVC、JPA/Mybatis、Spring Boot安全:Shiro、Spring Security中间件:Dubbo、ActiveMQ/RabbitMQ、Nginx数据库:MySQL/Oracle、Redis、Mo...原创 2019-08-18 11:53:24 · 1773 阅读 · 0 评论 -
Spring Boot 动态注入的两种方式
通过@Profile+spring.profiles.activespring.profiles.active:官方解释是激活不同环境下的配置文件,但是实际测试发现没有对应的配置文件也是可以正常执行的。那就可以把这个key当作一个参数来使用@Profile:spring.profiles.active中激活某配置则在spring中托管这个bean,配合@Component,@Service、@...原创 2019-08-17 13:54:06 · 3064 阅读 · 0 评论 -
springboot 配置webservice接口
导入依赖的jar<!-- webservice cxf --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <versi...原创 2019-08-17 13:19:46 · 10470 阅读 · 4 评论 -
Spring方法注入 @Lookup注解使用
情景分析在Spring的诸多应用场景中bean都是单例形式,当一个单利bean需要和一个非单利bean组合使用或者一个非单利bean和另一个非单利bean组合使用时,我们通常都是将依赖以属性的方式放到bean中来引用,然后以@Autowired来标记需要注入的属性。但是这种方式在bean的生命周期不同时将会出现很明显的问题,假设单利bean A需要一个非单利bean B(原型),我们在A中注入b...原创 2019-08-17 12:15:19 · 119 阅读 · 0 评论 -
SPRING自定义注入CONTROLLER变量
问题描述在SpringMVC中默认可以注入Model,ModelAndView,@RequestParam,@PathVariable 等,那么这个是怎么实现的,以及怎么注入一个自定义的参数呢HandlerMethodArgumentResolver在SpringMVC中有一个接口HandlerMethodArgumentResolver,这个就是用来控制解析controller中的参数类型...原创 2019-08-17 09:45:43 · 884 阅读 · 0 评论 -
springboot工具类
ClassPathResource 在类路径下读取资源public final String getPath()public boolean exists()public InputStream getInputStream()WebUtils 获取web资源工具类public static String getRealPath(ServletContext servletContext...原创 2019-08-16 22:02:26 · 2190 阅读 · 0 评论 -
Thymeleaf3语法详解
Thymeleaf是Spring boot推荐使用的模版引擎,除此之外常见的还有Freemarker和Jsp。Jsp应该是我们最早接触的模版引擎。而Freemarker工作中也很常见(Freemarker教程)。今天我们从三个方面学习Thymeleaf的语法:有常见的TH属性,四种标准表达式用法,在SpringBoot中的应用。还在等什么,一起来学吧!一、th属性常用th属性解读html有...原创 2019-08-11 09:40:53 · 340 阅读 · 0 评论 -
@PathVariable注解使用
@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值语法:@PathVariable("xxx")通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“) @RequestMapping(value=”user/{id}/{name}”)请求路径:http://localho...原创 2019-08-11 07:28:15 · 135 阅读 · 0 评论 -
Model、ModelMap和ModelAndView的使用详解
1.前言最近SSM框架开发web项目,用得比较火热。spring-MVC肯定用过,在请求处理方法可出现和返回的参数类型中,最重要就是Model和ModelAndView了,对于MVC框架,控制器Controller执行业务逻辑,用于产生模型数据Model,而视图View用于渲染模型数据。使用Model和ModelAndView这两个类在spring的视图解析时作用以及区别。这两者之间有着很大...原创 2019-08-10 18:07:32 · 168 阅读 · 0 评论 -
spring boot 使用视图modelandview
<!-- freemarker模板引擎视图 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifact...原创 2019-08-10 17:56:09 · 5944 阅读 · 0 评论 -
解耦合
广大程序猿同胞,经常会看到“解耦合”,也有很多人,会用这个词来装X,但是,实际真正能理解的人,并不多。接下来,带大家深入浅出的走一遍,如何解耦合。首先,我们要知道,为什么要解耦合:通常,我们做一个项目,会用到很多基础功能块,比如xxx通信协议,xxxView等等,我们会把这种功能块封装成一个库,如果这个库,只能在这个指定的项目运行,这就叫高耦合,这就导致了,如果下次再次遇到一个类似的项目,需要用...原创 2019-08-10 14:30:12 · 123 阅读 · 0 评论 -
Redis 的应用场景
之前讲过Redis的介绍,及使用Redis带来的优势,这章整理了一下Redis的应用场景,也是非常重要的,学不学得好,能正常落地是关键。下面一一来分析下Redis的应用场景都有哪些。1、缓存缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多...原创 2019-07-28 15:32:03 · 90 阅读 · 0 评论 -
springboot---整合redis
pom.xml新增 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </de...原创 2019-07-28 15:24:02 · 86 阅读 · 0 评论 -
springboot---整合redis
SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果。因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable)。看了很多博客后,我成功的整合了,并写了个Redis操作工具类。特意在此记录一下,方便后续查阅。一、Maven依赖(1)本文所采用的SpringBoot的版本如下<parent> &...原创 2019-07-28 15:20:01 · 82 阅读 · 0 评论 -
spring-boot注解详解(七)
@Configuration从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。注意:@...原创 2019-07-26 22:30:07 · 94 阅读 · 0 评论 -
spring-boot注解详解(六)
@Target@Retention@Documented@Component原创 2019-07-26 17:16:17 · 242 阅读 · 0 评论 -
spring-boot注解详解(五)
@AutoWired首先要知道另一个东西,default-autowire,它是在xml文件中进行配置的,可以设置为byName、byType、constructor和autodetect;比如byName,不用显式的在bean中写出依赖的对象,它会自动的匹配其它bean中id名与本bean的set**相同的,并自动装载。@Autowired是用在JavaBean中的注解,通过byType形...原创 2019-07-26 11:50:07 · 155 阅读 · 0 评论 -
spring-boot注解详解(四)
@repository@repository跟@Service,@Compent,@Controller这4种注解是没什么本质区别,都是声明作用,取不同的名字只是为了更好区分各自的功能.下图更多的作用是mapper注册到类似于以前mybatis.xml中的mappers里.也是因为接口没办法在spring.xml中用bean的方式来配置实现类吧(接口配不了),所以只能用注解或者mybatis...原创 2019-07-26 09:40:48 · 244 阅读 · 0 评论 -
spring-boot注解详解(三)
1.SpringBoot/spring@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;@Repository:用于标注数据访问组件,即DAO组件;@Service:用于标注业务层组件;@RestController:用于标注控制层组件(如struts中的ac...原创 2019-07-25 22:08:30 · 74 阅读 · 0 评论 -
Shiro的authc过滤器的执行流程
1.先执行isAccessAllowed(),通过subject.isAuthenticated()判断当前session中的subject是否已经登陆过。如果在当前session即会话中已经登陆过,返回true,authc过滤器放行请求到loginUrl。问题?这里会有一个问题,如果我登陆成功后,再次访问loginUrl,会执行isAccessAllowed()并返回true放行,那么我访问...原创 2019-07-30 17:19:30 · 3211 阅读 · 4 评论 -
springboot---基本模块详解
概述1.基于Spring框架的“约定优先于配置(COC)”理念以及最佳实践之路。2.针对日常企业应用研发各种场景的Spring-boot-starter自动配置依赖模块,且“开箱即用”(约定spring-boot-starter- 作为命名前缀,都位于org.springframenwork.boot包或者命名空间下)。spring-boot-starter-jdbc默认情况下,当我们没有...原创 2019-07-25 16:11:37 · 1075 阅读 · 0 评论 -
springboot---request 中Parameter,Attribute区别
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别:(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和aut...原创 2019-07-25 14:29:12 · 3849 阅读 · 0 评论 -
spring-boot注解详解(二)
@ResponseBody作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。使用时机: 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;@RequestMapping("/login") @ResponseBody ...原创 2019-07-25 13:20:19 · 119 阅读 · 0 评论 -
spring-boot注解详解(一)
spring-boot注解详解(一)@SpringBootApplication@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。@Configuration:提到@Configuration就要提到他的搭档@Bean。使用这两个注解就可以创建一个简单的spri...原创 2019-07-25 09:46:59 · 919 阅读 · 0 评论 -
SpringBoot整合Redis
SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果。因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable)。看了很多博客后,我成功的整合了,并写了个Redis操作工具类。特意在此记录一下,方便后续查阅。一、Maven依赖(1)本文所采用的SpringBoot的版本如下 <parent> ...原创 2019-07-30 09:29:02 · 108 阅读 · 1 评论 -
Springboot---Model,ModelMap,ModelAndView
Model(org.springframework.ui.Model)Model是一个接口,包含addAttribute方法,其实现类是ExtendedModelMap。ExtendedModelMap继承了ModelMap类,ModelMap类实现了Map接口。public class ExtendedModelMap extends ModelMap implements Model...原创 2019-07-27 12:51:22 · 5865 阅读 · 0 评论