黑马程序员技术交流社区

标题: springboot开发范例 [打印本页]

作者: 曹老师    时间: 2017-9-26 01:28
标题: springboot开发范例
Springboot开发笔记
1springboot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的开发过程,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Springboot官网(http://projects.spring.io/spring-boot/
Springboot特点:
1:化繁为简,简化配置
2springcloudconsule)基于springboot开发
3springboot整合的框架统一管理版本,不会存在版本冲突
2:环境搭建
Eclipse:使用sts
Maven:配置settings.xml指定阿里镜像仓库
Jdk 1.71.7以上
3springboot入门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
注意要在主程序加上@ComponentScan("com.itcast") 注解,扫描@controller
4:添加springboot开发插件
<dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-devtools</artifactId>
                 </dependency>
   该插件功能:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类、属性文件、页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快)
如果添加依赖建议重新runas
5web项目打包
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 properties
itcast:
  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支持FreeMarkerThymeleafjsp
1FreeMarker
1>依赖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创建jscss和图片等静态资源
注意:index.ftl中引入静态资源路径为绝对路径,如:
  <script src="/js/jquery-1.6.4.js"></script>
2:jsp模版
说明jsp尽量别使用,原因如下
1jsp只能打成war,不能打成jar
2:内置的jetty服务器不支持jsp
3jsp内置错误页面不能覆盖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
6springboot整合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
7springboot整合redis1:依赖jar
file:///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
spring.cache.type=redis
2:查询缓存
@Cacheable(value="stus",key="#name")
生成的key stus:name变量的值
3:缓存同步(清楚缓存)
@CacheEvict(value={"stus"},allEntries=true)
8spring-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
9springboot中使用servlet
Web中我们的controller能完成大部分的web请求,但有时候我们还是需要servletfilter以及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






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2