面看下本篇记录Spring Boot的几个知识点:
(一)一个Maven+Spring Boot项目基本的包结构形式
(二)一个简单的在Spring Boot项目集成安全控制
(二)如何在Spring Boot中记录log日志
(四)Spring Boot中几个常用注解介绍
(一)先看下,官网给出的一个简单的包结构组成:
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
+- CustomerController.java
然后,看下实际工作中的项目结构:
需要注意的地方如下:
1,在src/main/java包下的第一层结构中,是必须放一个含有main方法的主启动的类,而且只能有一个main方法,如果再出现其他的main方法,在使用maven编译打包时,会报编译错误,当然在src/test/java包下,可以出现多个,但建议最好使用Junit进行单元测试.
这个main方法启动,就会启动内嵌的tomcat或jetty容器,然后加载所有需要加载的或扫描的类或资源文件。上篇博客中,散仙为了测试方便,是直接在当前的Conroller中,启动了一个测试服务,这样做适合单独调试,如果是生产环境下的启动方法,则是散仙前面所讲的,在java包的根目录下建立一个main方法类,负责启动所有的资源。
在本例中,main代码如下:
package com.dhgate.rate;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration//配置控制
@EnableAutoConfiguration//启用自动配置
@ComponentScan//组件扫描
public class ApplicationMain {
public static void main(String[] args) throws Exception {
//启动Spring Boot项目的唯一入口
SpringApplication.run(ApplicationMain.class, args);
}
}
2,在src/main/resources目录下面,是放置一些配置文件,或模板支持的文件,如JSP,Velocity,Freemaker等,这里面比较常用或重要的一个文件,就是Spring Boot的集中式配置文件application.properties这个文件了,这里面给其他大部分的组件,提供了一个可集中管理和配置的中心,包括安全控制,redis,solr,mangodb的连接信息,以及数据库连接池,容器端口号,jmx,java mail,动态模板等。此外这个目录下默认是可以访问静态资源的,比如我们的css,js,或者第三方的一些引用文件等。
(二)关于在Spring Boot的配置简单的安全访问控制,这一点非常容器,我们只需要做如下二步,即可。
1,在pom文件中,引入spring-boot-starter-security的maven依赖。
Xml代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2,在application.properties中,配置访问的用户名和密码
#用户名 密码配置
security.user.name=admin
security.user.password=secret
management.security.roles=SUPERUSER
当然这只是,一个初级的配置,更复杂的配置,可以分不用角色,在控制范围上,能够拦截到方法级别的权限控制。
(三)日志的重要性,不言而喻,Spring Boot支持大部分的log配置,其中包括:
(1)java util logging
(2)log4j
(3)log4j2
(4)logbak
默认的情况下spring boot会选择logback作为日志记录的载体,当然要想它正常的工作,需要依赖 Commons Logging, Java Util Logging, Log4J 或 SLF4J,相信大部分同学都是选择使用log4j.properties作为我们的日志配置和管理,但是散仙在Spring Boot中一直没有测试集成成功,所以就放弃使用log4j.properties作为日志载体,而是选择了Spring Boot推荐的logbak作为日志的配置文件,用过之后感觉也不错。
使用步骤:
1,将logback.xml拷贝至resource目录下的根目录,然后在logback.xml中,配置相关的log生成规则,log级别,以及日志路径,log的字符编码集,这个非常重要,因为刚开始用这个log记录程序运行的信息时,发现它不支持中文log,后来经查名,需要配置相关的log编码才可以正确记录对应的信息。
一个通用的配置如下:
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
<!-- Simple file output -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
[ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily 配置日志所生成的目录以及生成文件名的规则 -->
<fileNamePattern>logs/mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 64 MB -->
<maxFileSize>64 MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<prudent>true</prudent>
</appender>
<!-- Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
[ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} [%line] - %msg%n
</pattern>
<charset>GBK</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- Only log level WARN and above -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<!-- Enable FILE and STDOUT appenders for all log messages.
By default, only log at level INFO and above. -->
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
<!-- For loggers in the these namespaces, log at all levels. -->
<logger name="pedestal" level="ALL" />
<logger name="hammock-cafe" level="ALL" />
<logger name="user" level="ALL" />
</configuration>
2,在application.properties中,指定log文件的加载路径,已经配置通用的log日志级别:
#指定log的配置文件,以及记录Spring Boot的log级别
logging.config=logback.xml
logging.level.org.springframework.web: INFO
(四)介绍下Spring Boot中几个常用的注解,其中大部分都是来自Spring MVC的注解,这些注解使用的频率一般都在90%之上。
(1)@RestController和@Controller指定一个类,作为控制器的注解
(2)@RequestMapping方法级别的映射注解,这一个用过Spring MVC的小伙伴相信都很熟悉
(3)@EnableAutoConfiguration和@SpringBootApplication是类级别的注解,根据maven依赖的jar来自动猜测完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器
(4)@Configuration类级别的注解,一般这个注解,我们用来标识main方法所在的类
(5)@ComponentScan类级别的注解,自动扫描加载所有的Spring组件包括Bean注入,一般用在main方法所在的类上
(6)@ImportResource类级别注解,当我们必须使用一个xml的配置时,使用@ImportResource和@Configuration来标识这个文件资源的类。
(7)@Autowired注解,一般结合@ComponentScan注解,来自动注入一个Service或Dao级别的Bean
(8)@Component类级别注解,用来标识一个组件,比如我自定了一个filter,则需要此注解标识之后,Spring Boot才会正确识别。
相关推荐
Spring Boot默认集成了Logback或Log4j2作为日志系统,并提供了简单易用的日志配置。 10. **健康检查与端点** Spring Boot的Actuator模块提供了多个端点,如`health`端点用于检查应用的健康状况,`metrics`端点...
- 日志:配置日志框架,如Logback或Log4j2,实现详细的日志记录。 - 分布式系统:考虑引入分布式配置中心(如Spring Cloud Config)、服务注册与发现(如Eureka)等组件。 通过这个Spring Boot API项目种子,...
Spring Boot默认使用Logback作为日志框架,同时也支持Log4j2等其他日志系统。 总的来说,Spring Boot 2.4.12提供了强大且易于使用的特性,使得开发者可以高效地构建各种类型的应用,无论是简单的RESTful API,还是...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、RabbitMQ、Quartz 等,使得开发者可以“零配置”地启动项目,...
4. 日志管理:Spring Boot默认集成Logback或Log4j2,通过配置控制日志级别和输出。 5. 安全控制:Spring Boot Security提供基础的安全管理,包括身份验证和授权,可轻松添加JWT token支持。 五、持续集成与部署 ...
《Spring Boot参考指南》是Spring Boot开发者的重要参考资料,它详细阐述了Spring Boot框架的核心特性、配置方式、自动配置原理以及如何构建微服务应用等关键知识点。Spring Boot是Java开发领域中一个极其流行的轻量...
7. **日志系统**:Spring Boot内置了对Logback和Log4j2的支持,开发者可以根据需求选择合适的日志系统。 8. **测试支持**:提供`@SpringBootTest`等注解,方便进行集成测试和端到端测试。 9. **安全**:通过`...
7. **日志管理**:Spring Boot支持Logback和Log4j2作为日志解决方案,并提供了统一的日志配置方式,使得日志管理和调试更为简单。 8. **数据访问**:Spring Boot对JPA、MyBatis等持久层框架有很好的支持,提供了...
- chapter1:[基本项目构建(可作为工程脚手架),引入web模块,完成一个简单的RESTful API](http://blog.didispace.com/spring-boot-learning-1/) - [使用Intellij中的Spring Initializr来快速构建Spring Boot/...
Spring Boot是一种基于Java的快速开发框架,旨在简化Spring应用程序的初始设置和常规配置。这个“spring boot管理系统后台”项目利用了Spring Boot的强大功能,为后台管理提供了一个高效且易维护的平台。让我们深入...
《Spring Boot实战》是针对JavaEE开发领域的一本权威指南,Spring Boot作为JavaEE开发的颠覆者,极大地简化了传统JavaEE应用的复杂性,提高了开发效率。这本书全面覆盖了Spring Boot的核心概念、配置以及实战应用,...
9. **监控与日志**:Spring Boot与gRPC的整合还允许我们集成常见的监控工具(如Prometheus、Grafana)和日志系统(如Logback、Log4j),对gRPC服务性能进行实时监控和问题排查。 10. **微服务架构**:在微服务环境...
12. **日志**:Spring Boot默认使用Logback或Log4j2进行日志记录,并提供了简单的日志级别配置。 以上就是关于Spring Boot的一些核心知识点,也是“干净可用spring-boot的项目”可能包含的内容。在实际使用时,...
基于Spring Cloud Finchley SR2 Spring Boot 2.0.7的最新版本。 核心基础项目内实现类自定义的权限注解,配合RBAC权限模型+拦截器即可实现权限的控制,具体的参考项目中的实现。同时也封装了一些顶层类和结果集等。...
- **使用 Spring Boot**:本节主要介绍 Spring Boot 的核心概念和功能,以及如何利用这些功能来简化开发过程。 #### 二、Spring Boot 入门指南 - **Spring Boot 简介**:Spring Boot 是一种基于 Spring Framework ...
13. 日志记录:Spring Boot集成了日志框架,如Logback或Log4j,方便进行日志记录和调试。 14. 测试支持:Spring Boot提供了测试工具和框架,如`@SpringBootTest`、`@WebMvcTest`等,用于单元测试和集成测试。 在...
9. **日志(Logging)**:Spring Boot 默认使用Logback 或 Log4j2 作为日志系统,并提供了基本的日志配置。 10. **健康检查(Actuator)**:Spring Boot Actuator 提供了一系列端点来监控和管理应用的健康状态、...
Spring Boot 是一个由 Pivotal 团队开发的 Java 框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它整合了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建...
此外,Spring Boot还支持发送电子邮件、集成支付平台、日志记录(Logback/Log4j2)等功能,这些都是电子商务系统中常见的需求。 总结起来,Spring Boot以其强大的功能和易用性,为电子商务后端开发提供了坚实的基础...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建一个...