写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Java 应用的入口方法。
@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration****、@EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
· 其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。
Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 cn.dahaiwuliang.springboot 包)。
3 开发环境的调试
=============
热启动在正常开发项目中已经很常见了吧,虽然平时开发web项目过程中,改动项目启重启总是报错;但springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:
org.springframework.boot
spring-boot-devtools
true
该模块在完整的打包环境下运行的时候会被禁用。如果你使用 java -jar启动应用或者用一个特定的 classloader 启动,它会认为这是一个“生产环境”。
使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。
4 Spring Boot的配置文件
==================
org.springframework.boot
spring-boot-devtools
true
4.1 配置文件基础
Spring Boot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录或者类路径的 /config 下。
Spring Boot 不仅支持常规的 properties 配置文件,还支持 yaml 语言的配置文件。yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。
Spring Boot 的全局配置文件的作用是对一些默认配置的配置值进行修改。
application.properties的配置如下所示:
server.port=8081
server.servlet.context-path=/prop
application.yml的配置如下所示:
server:
port: 8082
servlet:
context-path: /yml
**·**注意: yml 需要在 “:” 后加一个空格。
4.2 使用@Value来获取配置属性
server:
port: 8080
servlet:
context-path: /hello
name: springmeng
age: 20
controller类中:
@Value(“${name}”)
private String name;
@Value(“${age}”)
private Integer age;
@RequestMapping(“/valueMethod”)
public String value() {
return name+age;
}
• **注意:**我们并没有在 yml 文件中注明属性的类型,而是在使用的时候定义的。
你也可以在配置文件中使用当前配置:
content: “name: n a m e , a g e : {name},age: name,age:{age}”
controller类中:
@Value(“${content}”)
private String content;
@RequestMapping(“/contentMethod”)
public String contentMethod() {
return content;
}
-
问题: 这样写配置文件繁琐而且可能会造成类的臃肿,因为有许许多多的 @Value 注解。
-
4.3 封装配置信息
我们可以把配置信息封装成一个类,首先在我们的 name 和 age 前加一个 student 前缀,然后新建一个 StudentProperties 的类用来封装这些信息,并用上两个注解:
-
@Component:表明当前类是一个 Java Bean
-
@ConfigurationProperties(prefix = “student”):表示获取前缀为 sutdent 的配置信息。
yml中:
student:
name: 小海
age: 19
controller中:
@Autowired
private StudentProperties studentProperties;
@RequestMapping(“/studentMethod”)
public String studentMethod() {
return studentProperties.getName()+studentProperties.getAge();
}
5 Spring Boot使用
===================
上面已经完成了 Spring Boot 项目的简单搭建,我们仅仅需要进行一些简单的设置,写一个 HelloController 就能够直接运行了。接下来我们再深入了解一下 Spring Boot 的使用。
5.1 Spring Boot支持JSP
Spring Boot 的默认视图支持是 Thymeleaf 模板引擎,但我们还是想要使用 JSP 怎么办呢?
第一步:修改 pom.xml 增加对 JSP 文件的支持:
javax.servlet
javax.servlet-api
provided
javax.servlet
jstl
org.apache.tomcat.embed
tomcat-embed-jasper
provided
第二步:配置试图重定向 JSP 文件的位置
修改 application.yml 文件,将我们的 JSP 文件重定向到 /WEB-INF/views/ 目录下:
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
第三步:新建 JSPController
修改 @RestController 注解为 @Controller ,然后将 hello 方法修改为gotoJSP:
public String gotoJSP (Model m) {
m.addAttribute(“info”, “Spring Boot后台传来的信息”);
return “jspPage”;
}
第四步:新建 hello.jsp 文件
在【src/main】目录下依次创建 webapp、WEB-INF、views 目录,并创建一个 jspPage.jsp 文件:
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>
HI,你好。 ${info}
5.2 集成MyBatis
第一步:修改 pom.xml 增加对 MySql和 MyBatis 的支持:
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.1.1
mysql
mysql-connector-java
5.1.21
第二步:新增数据库连接参数:
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
datasource:
url: jdbc:mysql://127.0.0.1:3306/spring?characterEncoding=UTF-8
复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
- 第一部分:Java基础-中级-高级
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
进阶学习笔记pdf
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
is**)**
[外链图片转存中…(img-HeI45InD-1715582712592)]
[外链图片转存中…(img-Ar4pDthQ-1715582712592)]
[外链图片转存中…(img-PB1rjuan-1715582712593)]
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
[外链图片转存中…(img-lMvX9Rp6-1715582712593)]
[外链图片转存中…(img-Lsov794T-1715582712593)]
[外链图片转存中…(img-Ux7033nY-1715582712594)]
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外链图片转存中…(img-pyUumSE1-1715582712594)]
[外链图片转存中…(img-wc9f7Cg2-1715582712594)]