SpringBoot学习笔记

1 关于maven项目构建知识点

在Maven里,可以用<exclusions>元素来排除传递依赖。下面这个引入Spring Boot的

pom.xml的<dependency>增加了<exclusions>元素去除Jackson:
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
       <exclusions>
        <exclusion>
          <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
      </exclusions>
    </dependency>
另一方面,也许项目需要Jackson,但你需要用另一个版本的Jackson来进行构建,而不是Web 起步依赖里的那个。假设Web起步依赖引用了Jackson 2.3.4,但你需要使用2.4.31。在Maven里, 你可以直接在pom.xml中表达诉求,就像这样:
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.4.3</version>
    </dependency>

Maven总是会用最近的依赖,也就是说,你在项目的构建说明文件里增加的这个依赖,会覆 盖传递依赖引入的另一个依赖。

2 application.properties

#server
server.port=8080
server.tomcat.uri-encoding=utf-8

#MySQL
spring.datasource.driver-class-name=com.mysql.jdbc.Driver    
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456


#Spring Data JPA
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

#视图层控制
spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html
spring.mvc.static-path-pattern=/static/**
#关于日志的配置方法
logging.level.root=info
logging.level.org.springframework.security=debug
logging.path=classpath:/var/logs/
logging.file=BookWorm.log

3 Spring Data JPA

 JpaRepository包含的两个参数代表的含义:仓库操作的领域对象类型,及其ID属性的类型

4 Spring MVC

在spring mvc中重定向使用以下方法: return "redirct:/{reader}" ;

5  Spring Boot

自动配置中使用的条件化注解 

@ConditionalOnBean    配置某个特定的bean
@ConditionalOnMissingBean 没有配置特定的bean
@ConditionalOnClass  classpath中有指定的类
@ConditionalOnMissingClass classpath中缺少指定的类
@ConditionalOnExpression  给定的Spring Expression Language(SpEL)表达式计算结果为true 

@ConditionalOnJava  Java的版本匹配特定值或者一个范围值 
@ConditionalOnJndi  参数中给定的JNDI位置必须存在一个,如果没有给参数,则要有JNDIInitialContext
@ConditionalOnProperty 指定的配置属性要有一个明确的值
@ConditionalOnResource Classpath里有指定的资源 
@ConditionalOnWebApplication 这是一个Web应用程序
@ConditionalOnNotWebApplication 这不是一个Web应用程序 


application.propertiesapplication.yml文件能放在以下四个位置。
(1) 外置,在相对于应用程序运行目录的/config子目录里。
(2) 外置,在应用程序运行的目录里。
(3) 内置,在config包内。
(4) 内置,在Classpath根目录。同样,这个列表按照优先级排序。也就是说,/config子目录里的application.properties会覆盖

应用程序Classpath里的application.properties中的相同属性。此外,如果你在同一优先级位置同时有application.propertiesapplication.yml,那么application.

yml里的属性会覆盖application.properties里的属性。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值