`
zhangdaiscott
  • 浏览: 441692 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8fb25857-16b4-3681-ab5e-e319f45c42a8
Jeecg快速开发平台
浏览量:0
文章分类
社区版块
存档分类

Spring Boot开发之流水无情(二)

 
阅读更多
本篇记录Spring Boot的几个知识点:
(一)一个Maven+Spring Boot项目基本的包结构形式
(二)一个简单的在Spring Boot项目集成安全控制
(二)如何在Spring Boot中记录log日志
(四)Spring Boot中几个常用注解介绍


ok下面开始正题:

(一)先看下,官网给出的一个简单的包结构组成:

Java代码收藏代码
  1. com
  2. +-example
  3. +-myproject
  4. +-Application.java
  5. |
  6. +-domain
  7. |+-Customer.java
  8. |+-CustomerRepository.java
  9. |
  10. +-service
  11. |+-CustomerService.java
  12. |
  13. +-web
  14. +-CustomerController.java
然后,看下散仙实际工作中的项目结构:

需要注意的地方如下:
1,在src/main/java包下的第一层结构中,是必须放一个含有main方法的主启动的类,而且只能有一个main方法,如果再出现其他的main方法,在使用maven编译打包时,会报编译错误,当然在src/test/java包下,可以出现多个,但建议最好使用Junit进行单元测试.
这个main方法启动,就会启动内嵌的tomcat或jetty容器,然后加载所有需要加载的或扫描的类或资源文件。上篇博客中,散仙为了测试方便,是直接在当前的Conroller中,启动了一个测试服务,这样做适合单独调试,如果是生产环境下的启动方法,则是散仙前面所讲的,在java包的根目录下建立一个main方法类,负责启动所有的资源。

在本例中,散仙的main代码如下:

Java代码收藏代码
  1. packagecom.dhgate.rate;
  2. importorg.springframework.boot.SpringApplication;
  3. importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;
  4. importorg.springframework.context.annotation.ComponentScan;
  5. importorg.springframework.context.annotation.Configuration;
  6. @Configuration//配置控制
  7. @EnableAutoConfiguration//启用自动配置
  8. @ComponentScan//组件扫描
  9. publicclassApplicationMain{
  10. publicstaticvoidmain(String[]args)throwsException{
  11. //启动SpringBoot项目的唯一入口
  12. SpringApplication.run(ApplicationMain.class,args);
  13. }
  14. }
2,在src/main/resource目录下面,是放置一些配置文件,或模板支持的文件,如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代码收藏代码
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-security</artifactId>
  4. </dependency>
2,在application.properties中,配置访问的用户名和密码
Java代码收藏代码
  1. #用户名密码配置
  2. security.user.name=admin
  3. security.user.password=test
再次,访问链接时,会出现以下,拦截页面,就代表配置成功:



当然这只是,一个初级的配置,更复杂的配置,可以分不用角色,在控制范围上,能够拦截到方法级别的权限控制。

(三)日志的重要性,不言而喻,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,将logbak.xml拷贝至resource目录下的根目录,然后在logbak.xml中,配置相关的log生成规则,log级别,以及日志路径,log的字符编码集,这个非常重要,因为刚开始用这个log记录程序运行的信息时,发现它不支持中文log,后来经查名,需要配置相关的log编码才可以正确记录对应的信息。一个通用的配置如下:

Xml代码收藏代码
  1. <!--Logbackconfiguration.Seehttp://logback.qos.ch/manual/index.html-->
  2. <configurationscan="true"scanPeriod="10seconds">
  3. <!--Simplefileoutput-->
  4. <appendername="FILE"class="ch.qos.logback.core.rolling.RollingFileAppender">
  5. <!--encoderdefaultstoch.qos.logback.classic.encoder.PatternLayoutEncoder-->
  6. <encoder>
  7. <pattern>
  8. [%-5level][%date{yyyy-MM-ddHH:mm:ss}]%logger{96}[%line]-%msg%n
  9. </pattern>
  10. <charset>UTF-8</charset><!--此处设置字符集-->
  11. </encoder>
  12. <rollingPolicyclass="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  13. <!--rolloverdaily配置日志所生成的目录以及生成文件名的规则-->
  14. <fileNamePattern>logs/mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  15. <timeBasedFileNamingAndTriggeringPolicy
  16. class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  17. <!--orwheneverthefilesizereaches64MB-->
  18. <maxFileSize>64MB</maxFileSize>
  19. </timeBasedFileNamingAndTriggeringPolicy>
  20. </rollingPolicy>
  21. <filterclass="ch.qos.logback.classic.filter.ThresholdFilter">
  22. <level>DEBUG</level>
  23. </filter>
  24. <!--SafelylogtothesamefilefrommultipleJVMs.Degradesperformance!-->
  25. <prudent>true</prudent>
  26. </appender>
  27. <!--Consoleoutput-->
  28. <appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender">
  29. <!--encoderdefaultstoch.qos.logback.classic.encoder.PatternLayoutEncoder-->
  30. <encoder>
  31. <pattern>
  32. [%-5level][%date{yyyy-MM-ddHH:mm:ss}]%logger{96}[%line]-%msg%n
  33. </pattern>
  34. <charset>GBK</charset><!--此处设置字符集-->
  35. </encoder>
  36. <!--OnlyloglevelWARNandabove-->
  37. <filterclass="ch.qos.logback.classic.filter.ThresholdFilter">
  38. <level>WARN</level>
  39. </filter>
  40. </appender>
  41. <!--EnableFILEandSTDOUTappendersforalllogmessages.
  42. Bydefault,onlylogatlevelINFOandabove.-->
  43. <rootlevel="INFO">
  44. <appender-refref="FILE"/>
  45. <appender-refref="STDOUT"/>
  46. </root>
  47. <!--Forloggersinthethesenamespaces,logatalllevels.-->
  48. <loggername="pedestal"level="ALL"/>
  49. <loggername="hammock-cafe"level="ALL"/>
  50. <loggername="user"level="ALL"/>
  51. </configuration>
2,在application.properties中,指定log文件的加载路径,已经配置通用的log日志级别:
Java代码收藏代码
  1. #指定log的配置文件,以及记录SpringBoot的log级别
  2. logging.config=logback.xml
  3. 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才会正确识别。

ok,本篇的讲解,就到此结束,这些都是项目工程的基础知识,了解这些,有助于我们快速的上手一个Spring Boot应用。

分享到:
评论

相关推荐

    《Spring Boot企业级开发教程》配套资料

    《Spring Boot企业级开发教程》配套资料是一份全面学习Spring Boot技术栈的宝贵资源,它涵盖了从基础到进阶的企业级应用开发知识。这个压缩包包含的教学材料多样,旨在帮助学习者深入理解并掌握Spring Boot的核心...

    《Vue Spring Boot前后端分离开发实战》源码Vue+Spring Boot前后端分离开发实战教学课件(PPT)

    在现代Web应用开发中,Vue.js和Spring Boot的结合已经成为了一种常见的前后端分离架构模式。这本《Vue Spring Boot前后端分离开发实战》的源码提供了深入学习和实践这一技术栈的机会。以下是对其中涉及知识点的详细...

    采用spring boot开发的一个后台管理系统.zip

    采用spring boot开发的一个后台管理系统 采用spring boot开发的一个后台管理系统 采用spring boot开发的一个后台管理系统 采用spring boot开发的一个后台管理系统 采用spring boot开发的一个后台管理系统 采用...

    基于 Spring Boot + MySQL 开发的博客系统源码.zip

    基于 Spring Boot + MySQL 开发的博客系统源码 基于 Spring Boot + MySQL 开发的博客系统源码 基于 Spring Boot + MySQL 开发的博客系统源码 基于 Spring Boot + MySQL 开发的博客系统源码 基于 Spring ...

    《Spring Boot企业级开发教程》配套资源.zip

    《Spring Boot企业级开发教程》配套资源.zip是一个包含多种学习材料的压缩文件,专为学习和研究Spring Boot的企业级开发而设计。这个资源包旨在帮助用户深入理解和掌握Spring Boot框架,以及与其相关的Java和后端...

    learning spring boot 2.0

    标题“Learning Spring Boot 2.0”指出了本书的目标读者是希望通过Spring Boot 2.0版本进行开发的学习者。Spring Boot是一种基于Java的开源框架,旨在简化新Spring应用的初始搭建以及开发过程。它使用了“约定优于...

    Spring Boot应用开发框架 v2.7.17.zip

    Spring Boot是Java领域的一款热门应用开发框架,它简化了基于Spring的应用程序的初始设置和配置。这个名为"Spring Boot应用开发框架 v2.7.17.zip"的压缩包包含了该版本的源码和相关文档,是学习和开发基于Spring ...

    基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip

    基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring ...

    Spring Boot 2 Cookbook 第二版

    《Spring Boot 2 Cookbook 第二版》是一本针对Java开发者极具价值的开发指南,它深入浅出地介绍了Spring Boot 2这一强大框架的使用方法。Spring Boot是Spring框架的一个子项目,旨在简化Java应用程序的初始搭建以及...

    Spring Boot 2.5.0简单学习pdf资料

    Spring Boot 是一个基于Java的开源框架,旨在简化Spring应用程序的搭建和开发。Spring Boot 2.5.0 是 Spring Boot 的一个版本,提供了许多新的特性和改进。下面是 Spring Boot 2.5.0 的一些关键特性和知识点: SSM ...

    LEARNING SPRING BOOT 3.0 - THIRD EDITION

    Spring Boot是Spring生态系统中的一个核心组件,它通过自动化配置、起步依赖和内嵌式Web服务器等功能,极大地简化了Java应用的开发。 在Spring Boot 3.0版本中,我们可以期待一系列更新和改进,包括性能提升、新...

    spring boot资料以及项目

    Spring Boot是Java开发领域中的一款热门框架,它简化了基于Spring的应用程序的初始设置和配置。这个压缩包包含了丰富的Spring Boot学习资料以及实际项目案例,是深入理解和掌握Spring Boot技术的宝贵资源。 首先,...

    Netty+Spring Boot仿微信 全栈开发高性能后台及客户端

    本项目"Netty+Spring Boot仿微信 全栈开发高性能后台及客户端"旨在教你如何利用Netty和Spring Boot这两个强大的技术栈来实现类似微信的应用。接下来,我们将深入探讨这两个技术以及它们在全栈开发中的应用。 1. ...

    基于Spring Boot 开发的任务管理系统源码+项目说明.zip

    基于Spring Boot 开发的任务管理系统源码+项目说明.zip基于Spring Boot 开发的任务管理系统源码+项目说明.zip基于Spring Boot 开发的任务管理系统源码+项目说明.zip基于Spring Boot 开发的任务管理系统源码+项目说明...

    Spring Boot 2 Recipes

    使用微服务进行Web服务开发并与Spring Boot应用程序集成 无缝添加持久性和数据层,使您的Spring Boot Web应用程序做得更多 使用Spring Boot集成企业服务以创建更复杂的Java应用程序 本书适用于经验丰富的Java和...

    十分钟上手spring boot

    Spring Boot 是一款基于 Spring 架构的全新框架,它极大地简化了基于 Spring 的应用开发。Spring Boot 旨在提供快速应用开发所需的“一站式”解决方案。其目标是简化新Spring应用的初始搭建以及开发过程。 ##### 一...

    Spring Boot讲义.pdf

    Spring Boot是一个基于Spring框架的开源Java平台,它简化了基于Spring的应用开发过程。在Spring Boot中,"快速入门"通常指的是新手或初学者对Spring Boot的基本认识和基础使用,能够快速构建和部署一个Spring Boot...

    Spring Boot-实战

    《Spring Boot-实战》这本书是针对Java开发人员的一份实用指南,主要聚焦于Spring Boot框架的应用与实践。Spring Boot是Spring生态系统中的一个关键组件,它旨在简化Spring应用程序的初始搭建以及开发过程,使得...

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...

    Spring Boot Vue前后端分离开发实战.pdf

    综上所述,文档《Spring Boot Vue前后端分离开发实战.pdf》涵盖了前后端分离的开发模式、Spring Boot和Vue.js的基础知识和使用、开发环境的搭建、前后端交互的实现、项目配置与启动、数据库操作、前端开发的实践等多...

Global site tag (gtag.js) - Google Analytics