spring框架

springboot整合SpringDataJPA

纵然是瞬间 提交于 2020-02-26 18:12:17
什么是SpringDataJPA? ① SpringData是spring提供的操作数据的框架,jpa是其中的一个模块。 ②SpringDataJPA用于简化操作持久层(操作数据库)的代码,只需要编写接口即可。 JPA会根据你提供的实体类和持久层接口,自动创建数据库表并插入数据保存。意味着你不需要自己去创建数据库表!!! SpringBoot整合SpringDataJPA步骤 在pom文件中添加坐标 <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> </properties> <dependencies> <!-- spring-boot启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 添加thymeleaf启动器 --> <dependency> <groupId>org

15分钟教你使用 Spring Boot+Thymeleaf自定义一个的图床管理工具!

若如初见. 提交于 2020-02-26 16:27:36
SpringBoot +OSS 服务自定义图床 源码地址: https://github.com/Snailclimb/springboot-aliyun-oss 前言 疫情之下,每天都是好吃懒做啊!反正在家闲着没有事情,于是乎,花了一天时间写了这个简单项目。其实我本来是准备继续完善一下,然后部署到自己的云服务器上当作自己的相册。后来实在太懒了,也不想写前端了,于是留下了一些代办。 项目虽小,但是五脏俱全,可以直接拿来当作工具使用,代码写的虽然仓促,但是总体上应该没有什么大问题,初学者也可以直接拿来学习。 总的来说,这个项目主要能为你提供这些帮助: 阿里云 oss 作为图床服务非常常用,简单封装和了解一下有助于你以后使用; 技术栈使用 SpringBoot 和 thymeleaf 模板引擎,前端框架用的是国产好评较多的 layui。这个项目可以带你走一遍前后端一起开发的流程。 我会写 React 和 Vue 但是考虑到大部分后端的朋友没有接触过,所以直接用 thymeleaf整的,话说 layui 也还是第一次用!都是跟着 layui 官网找葫芦画瓢一步一步写的前端页面 。 效果展示 页面长的比较丑,没有花太多时间在这个上面,将就着看一下。 bilibili 在线观看: https://www.bilibili.com/video/av88090586 上传页面 上传成功 技术栈

Spring框架(二):Spring整合Mybatis、添加事物

﹥>﹥吖頭↗ 提交于 2020-02-26 14:56:41
Spring 整合 MyBatis 案例 实现功能:在数据库中根据id查找用户的信息 一、创建与数据库表中对应的实体类 使用 lombok 简化创建 User 类 package com . kuang . pojo ; @Data @AllArgsConstructor @NoArgsConstructor public class User { //注意 字段与表中列名对应 private int id ; private String name ; private String pwd ; } 二、写出这个类的映射接口,接口里有我们查询数据库的方法 package com . kuang . mapper ; import com . kuang . pojo . User ; import java . util . List ; public interface UserMapper { public List < User > getUserList ( ) ; } 三、写出接口的XML文件 xml 中有查询语句 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd

Spring-注解

∥☆過路亽.° 提交于 2020-02-26 13:33:10
Spring的IOC容器:Map结构 账户的业务层实现类 曾经XML的配置: <bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl" scope="" init-method="" destroy-method=""> <property name="" value="" | ref=""></property> </bean> 用于创建对象的 他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的 Component: 作用:用于把当前类对象存入spring容器中 属性: value:用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。 Controller: 一般用在表现层 Service: 一般用在业务层 Repository: 一般用在持久层 以上三个注解他们的作用和属性与Component是一模一样。 他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰 用于注入数据的 他们的作用就和在xml配置文件中的bean标签中写一个<property>标签的作用是一样的 Autowired: 作用:自动按照类型注入。只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功

Spring Boot+zookeeper+dubbo配置

只愿长相守 提交于 2020-02-26 12:22:07
一、基于zookeeper+dubbo组合的分布式系统 分布式系统中,常用zookeeper+dubbo组合 zookeeper:一个分布式的、开放源码的分布式应用程序协调服务。提供的功能:配置维护、域名服务、分布式同步、组服务 dubbo:分布式服务框架,按照分层的方式来架构,使各层解耦。模型简单,分为服务提供方和服务消费方 例子:有两个模块A、B,dubbo负责解决A模块和B模块的远程过程调用(RPC问题),A需要通过注册中心(zookeeper)得到B的地址再进行调用。 dubbo框架工作图如下图: dubbo的服务容器Container,启动时启动和加载Provider(服务提供者) 服务提供者(Provider)启动时,将自己能提供的服务信息注册到注册中心(Registry)】 服务消费者(Consumer)启动时会从注册中心订阅所需要的服务 注册中心会把所需服务的地址列表返回给服务消费者(如果服务有变更,注册中心会基于长连接的方式将信息变更给消费者) 消费者需要调用时,会从提供者的地址列表中找到某个提供者的位置,调用他的服务,服务失败,会从地址列表中找寻另一个服务器供着并调用服务,直到调用成功 监控中心(Monitor)有监控机制,会获得调用次数、调用时间等信息,进行监控 二、配置分布式框架 1、docker安装zookeeper sudo docker pull

Spring包的下载

倾然丶 夕夏残阳落幕 提交于 2020-02-26 10:29:14
Spring是一个独立的框架,它不需要依赖于任何Web服务器或容器。 它既可在独立的Java SE项目中使用,也可以在Java Web项目中使用。 下载的地址: https://repo.spring.io/libs-release-local/org/springframework/spring/ 在这一个目录下面我们会看到很多关于Spring的版本,根据自己的需求选择下载。下载该文件, 下载后解压文件,在解压后的文件当中有一个libs文件夹,该文件夹下面的jar包也就是我们需要的jar包。 来源: CSDN 作者: 庸俗的情怀 链接: https://blog.csdn.net/qq_44973159/article/details/104510906

Spring框架-第一篇

蓝咒 提交于 2020-02-26 09:09:13
第一章:认识Spring 1.1-Spring是什么 Spring 是 分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC (Inverse Of Control: 反转控制)和 AOP (Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。 1.2-Spring的发展历程 1997 年 IBM 提出了 EJB 的思想 1998 年,SUN 制定开发标准规范 EJB1.0 1999 年,EJB1.1 发布 2001 年,EJB2.0 发布 2003 年,EJB2.1 发布 2006 年,EJB3.0 发布 Rod Johnson(spring 之父) Expert One-to-One J2EE Design and Development(2002) 阐述了 J2EE 使用 EJB 开发设计的优点及解决方案 Expert One-to-One J2EE Development without EJB(2004) 阐述了 J2EE 开发不使用 EJB 的解决方式(Spring 雏形) 2017 年 9 月份发布了

spring学习 springIOC(一)

寵の児 提交于 2020-02-26 08:19:13
刚刚开始学习java ssm框架,当作自己的学习笔记来写。理解方面可能会有错误,大佬们见谅~ 1.首先要知道springIOC是什么? ioc即“控制反转”,是通过java反射技术实现的,又被叫做DI即“依赖注入”。这玩意儿到底是个啥,个人认为可以理解为一个大的超级工厂(工厂模式--一种设计模式),他的作用是解决代码之间的耦合性问题,之前我们java对象都是new出来的,在springIOC中,我们可以通过其它方式(配置文件/注解)来实例化一系列对象,并将他们都扔进这个容器里,需要的时候直接取出来用就好了。 注解有一下几个 2.第一个简单的例子 环境: win10 + idea + java8 才开始使用idea感觉和之前学习时用的Android Studio挺像的,进入idea后新建一个spring项目,他会自己下载一些相关的jar包,可能是外网网速比较差。(关于idea有挺多快捷键可自行百度) 完蛋,不想写了,这里贴一下自己的码了,沙雕代码 0.0 目录结构 一共两包 学生老师课程,没啥内容setter/getter/toString。。 还有一个测试类 重要是是配置文件叭。如果想自己运行的话代码都在下边复制就ok啦。 applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http

Spring AOP 详解

痞子三分冷 提交于 2020-02-26 05:57:42
AOP: AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过 OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关 系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切(cross cutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。 AOP核心概念 1、横切关注点 对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点 2、切面(aspect) 类是对物体特征的抽象,切面就是对横切关注点的抽象 3、连接点(joinpoint) 被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器 4、切入点(pointcut) 对连接点进行拦截的定义 5、通知(advice) 所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类 6、目标对象 代理的目标对象 7、织入(weave

spring retry, guava retrying 的整合-sisyphus java 重试

风流意气都作罢 提交于 2020-02-26 05:01:17
Sisyphus 支持过程式编程和注解编程的 java 重试框架。 特性 支持 fluent 过程式编程 基于字节码的代理重试 基于注解的重试,允许自定义注解 无缝接入 spring 接口与注解的统一 解决 spring-retry 与 guava-retrying 中的不足之处 设计目的 综合了 spring-retry 和 gauva-retrying 的优势。 调整一些特性,使其更利于实际使用。 采用 Netty 类似的接口思想,保证接口的一致性,和替换的灵活性。 借鉴 Hibernate-Validator 的设计,允许用户自定义注解。 spring-retry 与 guava-retrying 中的不足之处 更新记录 更新记录 开源地址 sisyphus 快速开始 引入 <plugin> <groupId>com.github.houbb</groupId> <artifactId>sisyphus-core</artifactId> <version>0.0.6</version> </plugin> 入门代码 详情参见 [RetryerTest]() public void helloTest() { Retryer.<String>newInstance() .retry(new Callable<String>() { @Override public