SpringBoot整合JPA
SpringData简介
整合SpringData JPAJPA:ORM(Object Relational Mapping);
1)、编写一个实体类(bean)和数据表进行映射,并且配置好映射关系;
12345678910111213//使用JPA注解配置映射关系@Entity //告诉JPA这是一个实体类(和数据表映射的类)@Table(name = "tbl_user") //@Table来指定和哪个数据表对应;如果省略默认表名就是user;public class User { @Id //这是一个主键 @GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键 private Integer id; @Column(name = "last_name",length = 50) //这是和数据表对应的一个列 private String lastName; @Column //省略默认列名就是属性名 private String email;
2)、编写一个Dao接 ...
SpringBoot整合MyBatis
依赖12345<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version></dependency>
步骤:
1)、配置数据源相关属性(见上一节Druid)
2)、给数据库建表
3)、创建JavaBean
注解版1234567891011121314151617//指定这是一个操作数据库的mapper@Mapperpublic interface DepartmentMapper { @Select("select * from department where id=#{id}") public Department getDeptById(Integer id); @Delete("delete fro ...
Docker入门
Docker简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
运行中的这个镜像称为容器,容器启动是非常快速的。
核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
使用Docker的步骤:
1)、安装Docker
2)、去Docker仓库找到这个软件对应的镜像;
3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器;
4)、对容器的启动停止就是对软件的启动停止;
安装Docker安装linux虚拟机 1)、VMWare、VirtualBox(安 ...
SpringBoot配置嵌入式Servlet容器
配置嵌入式Servlet容器SpringBoot默认使用Tomcat作为嵌入式的Servlet容器;
定制和修改Servlet容器的相关配置;1、修改和server有关的配置(ServerProperties【也是EmbeddedServletContainerCustomizer】);
123456789server.port=8081server.context-path=/crudserver.tomcat.uri-encoding=UTF-8//通用的Servlet容器设置server.xxx//Tomcat的设置server.tomcat.xxx
2、编写一个EmbeddedServletContainerCustomizer:嵌入式的Servlet容器的定制器;来修改Servlet容器的配置
1234567891011@Bean //一定要将这个定制器加入到容器中public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){ return new Em ...
SpringBoot中的错误处理机制
错误处理机制SpringBoot默认的错误处理机制默认效果:
1)、浏览器,返回一个默认的错误页面
浏览器发送请求的请求头:
2)、如果是其他客户端,默认响应一个json数据
原理:
可以参照ErrorMvcAutoConfiguration;错误处理的自动配置;
给容器中添加了以下组件 1、DefaultErrorAttributes:
1234567891011帮我们在页面共享信息;@Override public Map<String, Object> getErrorAttributes(RequestAttributes requestAttributes, boolean includeStackTrace) { Map<String, Object> errorAttributes = new LinkedHashMap<String, Object>(); errorAttributes.put("timestamp", new Date()) ...
SpringBoot-Web开发基础
SpringBoot-Web开发简介使用SpringBoot;
1)、创建SpringBoot应用,选中我们需要的模块;
2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来
3)、自己编写业务代码;
自动配置原理?
这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?
12xxxxAutoConfiguration:帮我们给容器中自动配置组件;xxxxProperties:配置类来封装配置文件的内容;
SpringBoot对静态资源的映射规则;123@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)public class ResourceProperties implements ResourceLoaderAware { //可以设置和静态资源有关的参数,缓存时间等
1234567891011121314151617181920212223242526272829303 ...
SpringBoot日志
日志框架市面上的日志框架;
JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j….
日志门面 (日志的抽象层)
日志实现
JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-logging
Log4j JUL(java.util.logging) Log4j2 Logback
左边选一个门面(抽象层)、右边来选一个实现;
日志门面: SLF4J;
日志实现:Logback;
SpringBoot:底层是Spring框架,Spring框架默认是用JCL;
==SpringBoot选用 SLF4j和logback==
SLF4j使用如何在系统中使用SLF4j https://www.slf4j.org以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;
给系统里面导入slf4j的jar和 logback的实现jar
123456789import org.slf ...
《浪潮之巅》第15章
风险投资(Venture Capital Investment,简称VC),在中国又简称风投。风险投资和以往需要有抵押的贷款有着本质的不同。风险投资无需抵押,也不需要偿还。如果投资成功,风投资本家将获得几倍、几十倍,甚至上百倍的回报,如果投资失败,钱就打水漂了。对创业者来说,利用风险投资创业,即使失败也不会背上债务。这样就使得年轻人创业成为可能。
新成立的公司本身都很小,尤其是初期,它们只需要融资几十万甚至几万美元可以了,大的风险投资公司就不会参与。对于这些公司的投资,就由一类特殊的风险投资商——天使投资人来完成。天使投资(Angel Investment)本质上是早期的风险投资。
要做到高回报,首先必须选对题目。一个好的创业项目最要紧的是具有新颖性,通常是别人没有想到的,而不是别人已经做成功的。很多创业者喜欢模仿,虽然这样也有成功的可能,却不可能为风投挣到几十上百倍的投资回报。其次,创业的题目不能和主流公司的主要业务撞车。
一个好的项目必须具有以下几个条件
1. 一旦这个项目做成,要有现成的市场,而且容易横向扩展(Leverage ...
Vue入门
Vue的基本格式:123456789101112131415161718192021<!DOCTYPE html><html lang="en"> <head charest="UTF-8"> <title>Vue基础</title> </head> <body> <div id="app"> {{ message }} </div> <!-- 开发环境版本 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> var app = new Vue({ el:"#app", ...
AOP中的动态代理
#####动态代理:
在原有代码的基础上通过增强代码,来实现新的功能。AOP的核心就是动态代理。先编写核心业务层,然后利用AOP来增强核心业务层的代码,以降低耦合。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<!-- 配置Spring的IOC,把Service对象配置进来--> <bean id = "accountService" class="com.gao.service.impl.AccountServiceImpl"></bean><!-- Spring中基于XML的AOP配置步骤 1、把通知Bean也交给Spring来管理 2、使用aop:config标签表明开始AOP的配置 3、使用aop:aspect标签表明配置切面 id属性:是给切面提供一个唯一标识 ref属性:是指定通知类bean的id ...