properties

spring注解学习

邮差的信 提交于 2020-03-02 16:39:11
初始化容器时(为了循环依赖 懒加载)和之后获取bean时都会去单例池(一个map结构 beanName:bean)里面去拿对象 aop实现公共处理减少很多冗余,比如公共的异常日志处理 @scope @lazy @scope 设置bean的属性 单实例默认是启动时加载(可以使用@lazy注解实现懒加载),而其他是懒加载 spring可以获取运行环境的各种属性 @Conditional spring可以根据条件得到不同的bean:@Conditional注解的使用 也可以加在类上,即满足条件(加在注解上的条件类的判断方法返回true)这个类中的所有注册bean才会生效 @Repository @Repository不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型 @import @import快速给容器中导入一个组件,默认的id就是组件类的全名(组件即类)@import({User.class,Stu.class}) BeanPostProcessor 后置处理器 BeanPostProcessor也称为Bean后置处理器,它是Spring中定义的接口,在Spring容器的创建过程中(具体为Bean初始化前后)会回调BeanPostProcessor中定义的两个方法:

spring-core组件详解——Environment应用上下文环境

丶灬走出姿态 提交于 2020-03-02 15:22:59
环境代表当前应用运行时所处的环境。 整个应用环境模型包括2个关键方面: profiles配置组(以下简称组): 一个profile组,是一个以name名称命名的、逻辑上的、要被注册到容器中的BeanDefinition的集合。简单一点说,一个profile就代表一组BeanDefinition,这个对应配置文件中<beans profile="">。当加载解析xml配置文件的时候,只有active=true激活的BeanDefinition才会被加载进容器。 properties环境变量: 在几乎所有的应用中,Properties环境变量都扮演着非常重要的角色,且这些变量值可以来自于各种PropertySource属性源,如:properties文件、jvm虚拟机环境变量、操作系统环境变量、JNDI、Servlet上下文参数、自定义的属性对象、Map对象,等等。Environment环境对象为用户提供了方便的接口,用于配置和使用属性源。 环境体系图如下: 刚才提到环境模型具有2个关键方面:profiles和properties,从体系图中可以看出,properties方面的所有功能由PropertyResolver属性解决器来实现,环境模型只是通过装饰模式,在PropertyResolver功能的基础上,额外扩展出了profiles方面的功能。因此在接口方面

IntelliJ IDEA中新增properties文件

限于喜欢 提交于 2020-02-29 11:31:43
  在idea开发环境中对resources文件夹新增一个properties资源文件,操作如下:   (1)选中resources文件夹,右击,依次选择New--->Resource Bundle,如下图所示:   (2)在点击Resource Bundle后,会弹出如下框:   在Create resource bundle的弹出框中,在Resource bundel base name的输入框中填写资源文件的名称,不要带properties后缀,例如:validatemessage,其余都默认设置,点击OK按钮后就可以在resources文件夹中新增了一个validatemessage.properties文件。   (3)效果情况,如下所示:   来源: https://www.cnblogs.com/bien94/p/12381844.html

Spring Boot国际化开发实战

北慕城南 提交于 2020-02-28 14:18:26
本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持,根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际化自动配置 Spring Boot中已经对国际化这一块做了自动配置。 国际化自动配置类: org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration 查看自动配置源码有以下主要几个参数: private String basename = "messages"; private Charset encoding = Charset.forName("UTF-8"); private int cacheSeconds = -1; private boolean fallbackToSystemLocale = true; basename :默认的扫描的国际化文件名为messages,即在resources建立messages_xx.properties文件,可以通过逗号指定多个,如果不指定包名默认从classpath下寻找。 encoding :默认的编码为UTF-8。 cacheSeconds :加载国际化文件的缓存时间,单位为秒,默认为永久缓存。 fallbackToSystemLocale :当找不到当前语言的资源文件时

JDBC——抽取工具类

和自甴很熟 提交于 2020-02-28 13:45:11
目的:简化书写 分析:   1.注册驱动   2.获取连接对象   3.释放资源 1.注册驱动 2.获取连接对象 需求:不想传递参数,还能保证工具类的通用性 解决方案:配置文件 jdbc.properties url=jdbc:mysql:///girls user=root password=ROOT driver=com.mysql.jdbc.Driver 3.释放资源 package cn.itcast.util; import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.sql.*; import java.util.Properties; /** * jdbc工具类 */ public class JDBCUtils { private static String url; private static String user; private static String password; private static String dirver; /* * 文件的读取,只需要读取一次即可拿到这值。 * 使用静态代码块:因为静态代码块随着类的加载而加载,只会执行一次 * */ static { //读取配置文件 try { //1

【SSM框架系列】Spring - JdbcTemplate&声明式事务

你离开我真会死。 提交于 2020-02-28 01:23:14
JdbcTemplate概述 以往使用jdbc时,每次都需要自己获取PreparedStatement,执行sql语句,关闭连接等操作。操作麻烦冗余,影响编码的效率。 Spring把对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate(jdbc模板)之中,这样我们只需要做一些简单的操作(eg:编写SQL语句、传递参数)就可以了。 spring框架根据不同持久层方案为我们提供了不同的JdbcTemplate(jdbc模板类)。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等 QuickStart 导入spring-jdbc和spring-tx坐标 < dependencies > <!-- Spring上下文坐标,如果使用到了Spring的上下文容器,需要导入--> < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-context </ artifactId > < version > 5.0.5.RELEASE </ version > </ dependency >

Spring Boot读取properties

只愿长相守 提交于 2020-02-28 00:15:33
原文地址: http://www.yiidian.com/springboot/springboot-properties.html Spring Boot里面有两个注解可以读取application.properties或application.yml文件的属性值。 @Value @ConfigurationProperties 1 @Value 1.1 基本类型 1)配置 nickname=eric age=20 2)SpringBoot读取配置 /** * @Value注解 - 读取application.properties属性 * 一点教程网 - www.yiidian.com */ @Controller public class ConfigController { //1.1 读取基本类型 @Value("${nickname}") private String nickname; @Value("${age}") private Integer age; 1.2 JavaBean类型 1)配置 user.nickname=jack user.age=18 2)SpringBoot读取配置 /** * @Value注解 - 读取application.properties属性 * 一点教程网 - www.yiidian.com */ @Controller

[转帖] YAML 快速入门

穿精又带淫゛_ 提交于 2020-02-28 00:03:34
https://www.jianshu.com/p/97222440cd08 原始文档更加易读. YAML快速入门 叩丁狼教育 关注 2018.02.18 19:19* 字数 1776 阅读 876 评论 1 喜欢 8 【原创文章,转载请注明原文章地址,谢谢!】 我们学习Java,都是先介绍properties文件,使用properties文件配合Properties对象能够很方便的适用于应用配置上。然后在引入XML的时候,我们介绍properties格式在表现层级关系和结构关系的时候,十分欠缺,而XML在数据格式描述和较复杂数据内容展示方面,更加优秀。到后面介绍JSON格式的时候,我们发现JSON格式比较XML格式,更加方便(除去数据格式限制之外),所以现在很多配置文件(比如Nginx和大部分脚本语言的配置文件)都习惯使用JSON的方式来完成,包括Springboot的出现目的也是在一定程度上去掉XML的繁琐配置。 在Springboot中,推荐使用properties或者YAML文件来完成配置,但是对于较复杂的数据结构来说,YAML又远远优于properties。本文就快速介绍YAML的常见语法格式。 先来看一个Springboot中的properties文件和对应YAML文件的对比: #properties(示例来源于Springboot User guide):

YAML快速入门

怎甘沉沦 提交于 2020-02-28 00:02:32
https://www.jianshu.com/p/97222440cd08 我们学习Java,都是先介绍properties文件,使用properties文件配合Properties对象能够很方便的适用于应用配置上。然后在引入XML的时候,我们介绍properties格式在表现层级关系和结构关系的时候,十分欠缺,而XML在数据格式描述和较复杂数据内容展示方面,更加优秀。到后面介绍JSON格式的时候,我们发现JSON格式比较XML格式,更加方便(除去数据格式限制之外),所以现在很多配置文件(比如Nginx和大部分脚本语言的配置文件)都习惯使用JSON的方式来完成,包括Springboot的出现目的也是在一定程度上去掉XML的繁琐配置。 在Springboot中,推荐使用properties或者YAML文件来完成配置,但是对于较复杂的数据结构来说,YAML又远远优于properties。本文就快速介绍YAML的常见语法格式。 先来看一个Springboot中的properties文件和对应YAML文件的对比: #properties(示例来源于Springboot User guide): environments.dev.url=http://dev.bar.com environments.dev.name=Developer Setup environments.prod

yml和properties的区别

泪湿孤枕 提交于 2020-02-27 20:56:13
SpringBoot的配置文件有两种:一种是properties结尾的,一种是yaml或者yml文件结尾的。 application.properties application.yml 1 . 默认情况下是properties结尾的配置文件,都放在src/main/resources目录。 例: application.properties文件配置: //随机端口号server.port=${random.int[1024,9999]} server.port=9090 gx.msg=hi,hello world 转换为 application.yml文件配置: server: port: 9090 gx: msg: hi,hello world 以空格的缩进程度来控制层级关系,空格个数不重要。 2.区别 正常的情况是先加载yml,接下来加载properties文件。如果相同的配置存在于两个文件中。最后会使用properties中的配置。最后读取的优先集最高。 两个配置文件中的端口号不一样会读取properties中的端口号 来源: https://www.cnblogs.com/97guoxiang/p/12374113.html