热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot学习笔记05开发准备

1.开发流程A.引入适合的场景依赖--starter可以参照SpringBoot官方文档:https:docs.spring.iospring-bootdocsc
1.开发流程

A.引入适合的场景依赖--starter

可以参照SpringBoot官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter

B.查看已有的自动配置、添加缺失的

前面我们说过,SpringBoot的自动配置依赖于xxAutoConfiguration.class,以spring-boot-starter-web为例,导入该依赖后,自动配置类里web相关的自动配置类一般就会启用,可以通过源码分析哪些启用哪些不启用。

SpringBoot还可以开启debug模式,开启自动配置的报告,就会打印出生效的类(包括原因)、没生效的类(包括原因)等等:

C.通过配置文件修改参数

例如数据库连接信息:

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/study_mybatis?serverTimezone=GMT%2B8username: ****password: ****

可以参考官方文档的可修改属性:https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#common-application-properties。

当然也可以通过阅读源码内部自动配置类绑定了哪些prefix来确定属性名称。

D.自定义组件或替换组件

还记得我们之前分析的SpringBoot的charasetEncodingFilter吗,在容器内部有字符集编码过滤器的时候,是不会生效的;SpringBoot对于同类型的组件,以用户的优先。当然我们如果觉得SpringBoot的组件不够齐全,还可以自定义并加入容器。

SpringBoot还提供了xxCustomizer自定义器,让我们自定义个性化功能。

2.lombok简化JavaBean

lombok安装后,在编写JavaBean的时候,我们使用几个注解就可以替代 无参构造、全参构造、Getter、Setter、ToString方法、日志:

A.引入依赖(SpringBoot管理了版本)

org.projectlomboklombok

B.在ideal中装好相应插件

C.使用lombok简化JavaBean

Student.java

@NoArgsConstructor //无参
@AllArgsConstructor //全参
@ToString // toString方法
@Data // 所有属性的 getter and setter
@Slf4j //日志
public class Student {private String name;private Integer age;private Pet pet;private int[] Arr;public Student(String name, Integer age) { // lombok 不支持部分参数构造器this.name = name;this.age = age;}public void printLog(){log.info("----这是日志打印输出----");}
}

MySpringConfiguration.java

@Configuration(proxyBeanMethods = true)
public class MySpringConfiguration {@Beanpublic Pet pet(){return new Pet("小黑");}@Beanpublic Student Stu(){return new Student("zzt",18,pet(),new int[]{1,2,3,4});}}

DemoApplication.java

@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {ApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);Student student = ctx.getBean(Student.class);System.out.println(student);student.printLog();}}

执行输出:

当然,lombok还是有缺陷的,尽管用它开发简单,可也正因为他是写死的,想要个性化的定制还是需要自动手动改;比如只含有部分参数的构造器、自定义的toString(我们可能不是对复杂对象的直接打印)等等。

3.开发者工具dev-tools

org.springframework.bootspring-boot-devtoolstrue

引入dev-tools后,ctrl+F9就可以帮我们自动检查程序是否有改变,如果有就重新编译并重启,它不是真正意义上的热部署热更新。

4.热部署插件JRebel-解决项目修改时需要重启的问题

方式一:搜索自动安装(会比较慢,有梯子可尝试)

方式二:下载压缩包,解压在ideal的plugins目录下

需要激活,可参考:http://www.cicoding.cn/other/jrebel-activation/(可能还是需要梯子)

现在我们使用Rebel启动项目:

若代码发生了改变,我们只需要重新build一下即可。

[注]:如果觉得XRebel(与JRebel绑定下载的)激活弹窗很麻烦,也可以选择激活它~

 

 

 

 


推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
author-avatar
杯中水1129_909
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有