[spring boot] ------ 总结1

spring boot

设计目的:简化spring应用的初始搭建以及开发过程
spring环境的微服务:对原有技术的封装(spring + springMVC)
简化开发,提高开发效率(原ssm--->spring boot + mybatis)
自动配置,没有原来的XML配置文件

特点:

创建独立的spring应用程序
有内嵌入式的tomcat,所以无需部署WAR文件
还可以打成jar包
简化maven配置(3个依赖:父级项目依赖,web,test)
自动配置Spring
没有XML配置(包括web.xml,spring.xml等都不需要)

spring1.x:只有基础的aop和ioc,只能Xml配置
spring2.x:新加注解型配置,数据持久层用Xml,业务层用注解
spring3.X:新加java配置,javaConfig

spring boot约束:类似于maven约束,体现在包结构上

hello-springbootsrc/main/javacom.zs.domaincom.zs.daocom.zs.service入口类(必须放在子包的同级目录,和dao,service同级即可)src/main/resourceapplication.ymlapplication.yamlapplication.properties配置文件名字,必须叫application配置文件必须存放在resources下最常用.ymlsrc/test/javasrc/test/resourcetargetpom.xml

启动最简单的项目

引入maven依赖
配置入口类
配置端口号(默认8080,可选)
配置启动类,启动

注解剖析:

@SpringBootApplication(组合注解,一个注解可代替多个注解的功能)
等同与以下三个注解:@Configuration(申明当前类为配置类)@EnableAutoConfiguration(开启自动配置,开启后,比如mybatis集成的数据源对象dataSource,就不用创建了)@ComponentScan(默认扫描入口类的同级包,也可以手动指定:@ComponentScan("com.zs"))组件扫描:类上有以下注解的,类就是Spring的组件@Repository(dao)@Component(普通bean)@Service(业务)@Controller(控制)Spring申明Bean的形式1.<bean id="XXX" class="XXX"/>2.上面四种组件注解 + 包扫描(<context:component-scan>)3.javaConfig@ConfigurationClass JavaConfig{@Beanpublic User getUser(){return new User();}}
@RestController(也是组合注解)
等同与以下两个注解@ResponseBody@Controller
这个注解用在类上,所有方法都需要做json序列化,不会做视图解析

注意:
SpringBoot默认支持的视图层模板是thmyleaf,也类似于jsp,html,freemark
SpringBoot默认不支持Jsp做视图层的模板

SpringBoot与MyBatis的集成

先回忆Spring与Mybatis的集成:1.导入依赖:mybatis,druid,mybatis-spring,Spring相关2.相关配置:配置数据源  BasicDataSource、DruidDataSourceurl(动态的)DrverClassName(动态的)userName(动态的)password(动态的)配置sqlsessionFactoryBeantypeAlias(动态的) 别名datasoutce   refmapperLocation(动态的)  指定Mapper文件的位置,启动时加载配置MapperScannerConfigruation	扫描dao接口,为dao创建动态代理类(动态代理:1.JDK原生;2.cglib,基于字节码的)sqlsessionFactoryBeanName  refbasePackage (动态的)dao接口的位置配置声明事务datasourceTranscationMangermentdataSource   ref开启事务SpringBoot与MyBatis的集成1.导入依赖:mybatis,druid数据源,数据库驱动,mybatis-springboot整合mabatis-spring-boot-starterdruidmysql-connector-javamybatis2.相关配置:使用自动配置urlDrverClassNameuserNamepasswordtypeAliasmapperLocationbasePackage

day1 over

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RSA私钥文件(PEM-PKCS#1)解析

在PKCS#1 RSA算法标准中定义RSA私钥语法 RSAPrivateKey :: SEQUENCE { version Version, //版本 modulus INTEGER, // RSA合数模 n publicExponent INTEGER, //RSA公开幂 e privateExponent INTEGER, //RSA私有幂 d prime1 INTEGER, //n的素数因子p prime2 INTEGER, //n的…

Spring的@Configuration使用cglib代理的效果和我自己写的简单实现

下面的代码&#xff0c;照着复制就能跑起来 今天看了下Spring的Configuration&#xff0c;即java类配置bean,&#xff08;这个spring3的新功能&#xff0c;虽然现在已经spring5了&#xff0c;但是这种配置bean的方式也是比较火的&#xff09; 做了如下测试&#xff0c;发现一个…

Xcode中StaticLibrary和Framework的共同点和区别

一、共同点&#xff1a;两者其实都是静态库。二、区别1.承载的内容范畴&#xff1a;(1)StaticLibrary的产出物只是一个.a文件&#xff0c;为二进制执行文件。分享给别人的时候&#xff0c;头文件、静态资源文件需要另外提供。(2)Framework为一站式分享方案&#xff0c;其实是一…

[分布式] ------ 全局唯一id生成之雪花算法(Twitter_Snowflake)

雪花算法&#xff08;Twitter_Snowflake&#xff09; 我们知道&#xff0c;分布式全局唯一id的生成&#xff0c;一般是以下几种&#xff1a; 基于雪花算法生成基于数据库基于redis基于zookeeper 本文说下雪花算法&#xff0c;后面附源码以及测试代码。 如下图&#xff1a; …

非对称加解密交互故事

1.鲍勃有两把钥匙&#xff0c;一把是公钥&#xff0c;另一把是私钥。 2.鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。 3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密&#xff0c;就可以达到保密的效果 4.鲍勃收信后&#xff0c;用私钥解密&#xff0…

2019年规划

2019年规划&#xff0c;到2019-12-31检查&#xff1a; 1.至少读5本与工作无关的书&#xff08;平均两个月1本&#xff09;&#xff0c;每本都产出读后感 1.1 《重构 改善代码既有设计》&#xff0c;2月19日~3月5日&#xff0c;刚好两周读完&#xff0c;产出两篇总结&#xff0…

RSA私钥文件(PEM-PKCS#8)解析

***此文仅针对没有执行加密的PKCS#8私钥文件***一、实例解析PKCS#8格式使用的是ASN.1结构&#xff0c;首先我们对一个没有执行加密的PKCS#8格式私钥文件进行一下解析&#xff0c;方便我们下面分析其结构。命令&#xff1a;openssl asn1parse -i -in privatekey.pem结果如下&…

分布式和集群的区别

分布式和集群的区别 分布式是多个不同功能的机器共同完成一件事情 集群是多个相同功能的机器完成的是相同的事情 分布式是为了分担压力 集群是为了稳定性和高可用 举个例子&#xff1a; 一个厨师开了一个饭店&#xff0c;他要负责做饭和卖饭&#xff0c;他的压力就比较大&am…

Sqlite3中replace语句用法详解

在本例中使用如下数据库表&#xff1a; &#xff08;图 1&#xff09; 该表的表名为student&#xff0c; 存储学生信息。 所有字段的数据类型都是TEXT 。 其中id和name作为复合主键。 email字段加上了唯一约束。建表语句如下&#xff1a; CREATE TABLE IF NOT EXISTS student …

[分布式一致性协议] ------ raft协议的解释与理解

前言 在分布式系统中&#xff0c;为了保证容错性&#xff0c;一般会维护多个副本集群&#xff0c;提高系统的高可用&#xff0c;但与之带来的问题就是多个副本的一致性&#xff08;consensus&#xff09;问题。 我们认为&#xff0c;对于一个具有一致性的的集群中&#xff0c;…

iOS应用图片命名规则

一、界面图片命名规则&#xff1a;MyImage.png 一般图片命名MyImage2x.png 高清图片命名MyImage~iphone.png iPhone 和 iPod touch版一般图片命名MyImage2x~iphone.png iPhone 和 iPod touch版高清图片命名MyImage~ipad.png …

用户自定义排序的几种实现思路

场景 每个用户&#xff0c;有多个分组 每个分组在页面展示&#xff0c;而且是有顺序的&#xff0c;这个顺序是由用户决定 以下是关于多种情况下的库表设计思路&#xff1a; 情景一&#xff1a;如果每改一次&#xff0c;就要实时修改库&#xff0c;而且用户可以任意修改顺序&…

重构,体现一个工程师的基本素养和底蕴

重构小记&#xff08;重构&#xff0c;改善既有代码的设计读后总结&#xff09; 我们要时时刻刻保持一颗项目要重构的心。 在非技术出身的领导看来&#xff0c;能用的代码就是好代码&#xff0c;只关注功能。 在工程师看来&#xff0c;代码不仅要好用&#xff0c;更要好看&…

应用内购买(IAP)各类型在服务端的验证规则

一、非消耗品(比如单本杂志购买,苹果服务器支持恢复) 1.先验证服务器有没有购买记录&#xff0c;如果有&#xff0c;则不处理&#xff0c;此次操作成功 &#xff1b;2.如果服务器没有购买记录&#xff0c;则到苹果服务器验证(1)首先到正式验证地址验证收据&#xff0c;如果返回…

@Transactional事务生效条件与样例

Transactional事务生效条件 Transactional注释的方法&#xff0c;不能是private修饰 Transactional注释的方法&#xff0c;必须是有接口的方法实现&#xff08;通用的Spring面向接口编程的套路&#xff09; Transactional注释的方法&#xff0c;必须要通过接口的方式调用&…

利用.dSYM和.app文件准确定位Crash位置

当发布到iPhone上的应用程序Crash之后&#xff0c;iPhone会自动生成一个Crash Log&#xff08;*.crash&#xff09;&#xff0c;这个文件包含了一些有用的调试信息&#xff0c;但对于堆栈&#xff0c;它只记录的函数地址&#xff0c;而无法显示函数名。函数名保存在一个叫dSYM的…

使用maven的profile区分本地环境和线上环境

使用maven的profile区分本地环境和线上环境 多环境开发&#xff0c;使用maven-profile&#xff0c;就可以在打包的时候通过参数的调整&#xff0c;最终打的包也不同。 以区分本地数据库和线上数据库为例 比如测试环境&#xff0c;用的是本地测试数据库&#xff1b;生产环境用…

查看函数库.a函数符号信息

一、概述 nm命令可以列出一个函数库文件中的符号表。它对于静态的函数库和共享的函数库都起作用。对于一个给定的函数库&#xff0c;nm命令可以列出函数库中定义的所有符号&#xff0c;包括每个符号的值和类型。还可以给出在原程序中这个函数&#xff08;符号&#xff09;是在多…

重构,体现一个工程师的基本素养和底蕴(细节篇)

重构小记&#xff08;重构&#xff0c;改善既有代码的设计读后总结&#xff09; 方法级别 提炼函数&#xff1a; 将一个大方法&#xff0c;拆成多个小方法&#xff0c;难点在于小方法的命名。 假如有早上上学的一个大方法&#xff0c; 那么就应该在里面有起床&#xff0c;穿衣…

MVPVM模式介绍

一、概述MVPVM即&#xff1a;Model-View-Presenter-ViewModel。此模式是MVVM和MVP模式的结合体。但是交互模式发生了比较大的变化。MVVM参考本博客文章&#xff1a;iOS-MVVM-模式介绍MVP参考本博客文章&#xff1a;MVP模式介绍 二、原理&#xff1a;Presenter同时持有View、Mod…