Springboot开发笔记 1:springboot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的开发过程,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 Springboot官网(http://projects.spring.io/spring-boot/) Springboot特点: 1:化繁为简,简化配置 2:springcloud(consule)基于springboot开发 3:springboot整合的框架统一管理版本,不会存在版本冲突 2:环境搭建Eclipse:使用sts Maven:配置settings.xml指定阿里镜像仓库 Jdk 1.7或1.7以上 3:springboot入门1:新建非web项目无需依赖(spring-boot-starter-web)file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8963.tmp.jpg 2:新建web项目需要依赖(spring-boot-starter-web)file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8983.tmp.jpg file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8984.tmp.jpg 3:运行web项目打出json串Runas----->SpringBootApp 4:添加springboot开发插件<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 该插件功能:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类、属性文件、页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快) 如果添加依赖建议重新runas 5:web项目打包file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8985.tmp.jpg 注意: 1:打包之前要使用jdk路径而不是jre路径 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8986.tmp.jpg 2:联网,因为打包过程需要下载打包插件 4:属性配置文件1:自定义属性配置itcast.pic.width=200 属性配置文件的优先级 先读取根目录application.properties后读取config->application.properties 2:内置属性配置server.port=8888 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=Asia/Chongqing 其他配置参考springboot文档 3:YAML instead of propertiesitcast: pic: width: 301 height: 400 server: port: 8881 |
一定要注意冒号后一定要加空格,要不然就无法生效 4:多环境配置(生产环境和测试环境灵活切换)file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8996.tmp.jpg 主配置文件加载生产环境配置文件语法: spring.profiles.active=pro 注意一旦pro被激活有冲突配置采用被激活的 5:解决属性配置文件中文乱码file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8997.tmp.jpg 5:模版引擎Spring-boot支持FreeMarker、Thymeleaf、jsp 1:FreeMarker1>依赖freemarker jar包 [size=10.5000pt]<dependency[size=10.5000pt]> [size=10.5000pt] [size=10.5000pt] [size=10.5000pt] [size=10.5000pt]<groupId[size=10.5000pt]>org.springframework.boot</groupId[size=10.5000pt]> [size=10.5000pt] [size=10.5000pt] [size=10.5000pt] [size=10.5000pt]<artifactId[size=10.5000pt]>spring-boot-starter-freemarker</artifactId[size=10.5000pt]> </dependency[size=10.5000pt]> |
2>在template下新建index.ftl 3>在static创建js和css和图片等静态资源 注意:在index.ftl中引入静态资源路径为绝对路径,如: <script src="/js/jquery-1.6.4.js"></script> 2:jsp模版说明:jsp尽量别使用,原因如下 1:jsp只能打成war,不能打成jar 2:内置的jetty服务器不支持jsp 3:jsp内置错误页面不能覆盖springboot默认的错误页面 步骤 1:新建war工程项目 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8998.tmp.jpg file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8999.tmp.jpg 2:依赖jar <!-- jsp解析器 --> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<dependency[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<groupId[size=6.5000pt]>org.apache.tomcat.embed</groupId[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<artifactId[size=6.5000pt]>tomcat-embed-jasper</artifactId[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<scope[size=6.5000pt]>provided</scope[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] </dependency[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] <!-- jstl --> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<dependency[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<groupId[size=6.5000pt]>javax.servlet</groupId[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] [size=6.5000pt] [size=6.5000pt]<artifactId[size=6.5000pt]>jstl</artifactId[size=6.5000pt]> [size=6.5000pt] [size=6.5000pt] </dependency[size=6.5000pt]> |
2:新建完成后会多出 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps89C9.tmp.jpg 3:依赖jar <!-- jsp解析器 --> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<dependency[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<groupId[size=7.5000pt]>org.apache.tomcat.embed</groupId[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<artifactId[size=7.5000pt]>tomcat-embed-jasper</artifactId[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<scope[size=7.5000pt]>provided</scope[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] </dependency[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] <!-- jstl --> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<dependency[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<groupId[size=7.5000pt]>javax.servlet</groupId[size=7.5000pt]> [size=7.5000pt] [size=7.5000pt] [size=7.5000pt] [size=7.5000pt]<artifactId[size=7.5000pt]>jstl</artifactId[size=7.5000pt]> </dependency> |
4:新建jsp页面 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps89DA.tmp.jpg 5:配置视图解析器 spring.mvc.view.prefix=/WEB-INF/jsp spring.mvc.view.suffix=.jsp |
6:springboot整合mybatis步骤1:选择 web 、devtool和下面两个 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps89DB.tmp.jpg 2:去属性配置文件中配置数据库连接池以及mapper.xml的路径 spring.datasource.driver=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/taotao?characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root #指定mybatis xml文件位置 mybatis.mapper-locations=classpath*:/mapperXml/*Mapper.xml |
3:扫描生成代理dao对象 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps89DC.tmp.jpg 7:springboot整合redis1:依赖jarfile:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps89DD.tmp.jpg 或者 [size=12.0000pt]<dependency[size=12.0000pt]> [size=12.0000pt] [size=12.0000pt] [size=12.0000pt] [size=12.0000pt]<groupId[size=12.0000pt]>org.springframework.boot</groupId[size=12.0000pt]> [size=12.0000pt] [size=12.0000pt] [size=12.0000pt] [size=12.0000pt]<artifactId[size=12.0000pt]>spring-boot-starter-data-redis</artifactId[size=12.0000pt]> </dependency[size=12.0000pt]> | 2:配置################redis 集群版######################### spring.redis.cluster.nodes=192.168.25.129:7001,192.168.25.129:7002,192.168.25.129:7003,192.168.25.129:7004,192.168.25.129:7005,192.168.25.129:7006 #################################################### ##################redis单机版##################### #spring.redis.host=211.159.182.188 #spring.redis.port=6379 #spring.redis.database=0 |
3:注入StringRedisTemplate享受redis读写功能@Autowired [size=14.0000pt] private StringRedisTemplate redisTemplate[size=14.0000pt]; |
4:redis使用注解自动缓存1:开启缓存 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps89DE.tmp.jpg 在application.properties指定缓存类型为redis 2:查询缓存 @Cacheable(value="stus",key="#name") 生成的key为 stus:name变量的值 |
3:缓存同步(清楚缓存) @CacheEvict(value={"stus"},allEntries=true) |
8:spring-boot整合activemq依赖jar file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8A0E.tmp.jpg 或者 [size=12.0000pt]<dependency[size=12.0000pt]> [size=12.0000pt] [size=12.0000pt] [size=12.0000pt] [size=12.0000pt]<groupId[size=12.0000pt]>org.springframework.boot</groupId[size=12.0000pt]> [size=12.0000pt] [size=12.0000pt] [size=12.0000pt] [size=12.0000pt]<artifactId[size=12.0000pt]>spring-boot-starter-activemq</artifactId[size=12.0000pt]> [size=12.0000pt] [size=12.0000pt] </dependency[size=12.0000pt]> |
2:配置 spring.activemq.broker-url=tcp://192.168.25.134:61616 spring.activemq.user[size=10.5000pt]=zhu spring.activemq.password=zhu.123 我的mq设置了密码 如果你的没设置可以不指定 |
3.启动注解 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8A1E.tmp.jpg 4:初始化queue对象 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8A1F.tmp.jpg 5:发送消息 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8A20.tmp.jpg 6:监听消息 file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8A21.tmp.jpg 9:springboot中使用servletWeb中我们的controller能完成大部分的web请求,但有时候我们还是需要servlet和filter以及listerner @WebServlet("/pic") //定义servlet组件 @ServletComponentScan("com") //扫描servlet组件 |
10 404与异常处理file:///C:\Users\PC\AppData\Local\Temp\ksohtml\wps8A22.tmp.jpg 11springboot整合druid数据库连接池1:依赖druid [size=9.0000pt]<dependency[size=9.0000pt]> [size=9.0000pt] [size=9.0000pt] [size=9.0000pt] [size=9.0000pt]<groupId[size=9.0000pt]>com.alibaba</groupId[size=9.0000pt]> [size=9.0000pt] [size=9.0000pt] [size=9.0000pt] [size=9.0000pt]<artifactId[size=9.0000pt]>druid</artifactId[size=9.0000pt]> [size=9.0000pt] [size=9.0000pt] [size=9.0000pt] [size=9.0000pt]<version[size=9.0000pt]>1.1.2</version[size=9.0000pt]> </dependency[size=9.0000pt]> |
2:更改数据库连接池的类型为druid spring.datasource.driver=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/taotao?characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root #配置数据库连接池类型 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource |
|