当前位置: 首页 > news >正文

哪个网站可以做结婚证品牌营销策划机构

哪个网站可以做结婚证,品牌营销策划机构,网站售后,wordpress的运行环境目录 一、注解 元注解 基本注解 启动注解 二、配置 格式介绍 读取配置文件信息 案例演示1 嵌套读取bean信息 案例演示2 读取Map,List 以及 Array 类型配置数据 案例演示3 三、总结 一、注解 之前我们了解了SpringBoot基础和AOP简单应用,这期来讲…

目录

一、注解

元注解

基本注解

启动注解

二、配置

格式介绍

读取配置文件信息

案例演示1

 嵌套读取bean信息

案例演示2

 读取Map,List 以及 Array 类型配置数据

案例演示3

 三、总结


一、注解

        之前我们了解了SpringBoot基础和AOP简单应用,这期来讲讲SpringBoot核心配置和注解 

        SpringBoot注解就是给代码打上标签的能力。通过引入注解,我们可以简单快速赋予代码生命力,大大提高代码可读性和扩展性。注解本身不具有任何能力,只是一个标签,但是我们可以定义各种标签然后实现各种标签处理器来对类、方法、属性甚至参数等进行功能扩展、功能开启、属性定义、行为定义、规则定义、关联处理、元数据定义等等。

元注解

@Documented:将会在被此注解注解的元素的javadoc文档中列出注解,一般都打上这个注解没坏处

@Target

        注解能被应用的目标元素,比如类、方法、属性、参数等等,需要仔细思考

@Retention

        仅在源码保留,还是保留到编译后的字节码,还是到运行时也去加载,超过90%的应用会在运行时去解析注解进行额外的处理,所以大部分情况我们都会设置配置为RetentionPolicy.RUNTIME

@Inherited

        如果子类没有定义注解的话,能自动从父类获取定义了继承属性的注解,比如Spring的@Service是没有继承特性的,但是@Transactional是有继承特性的,在OO继承体系中使用Spring注解的时候请特别注意这点,理所当然认为注解是能被子类继承的话可能会引起不必要的Bug,需要仔细斟酌是否开启继承

@Repeatable

        Java 8引入的特性,通过关联注解容器定义可重复注解,小小语法糖提高了代码可读性,对于元素有多个重复注解其实是很常见的事情,比如某方法可以是A角色可以访问也可以是B角色可以访问,某方法需要定时任务执行,要在A条件执行也需要在B条件执行

@Native

        是否在.h头文件中生成被标记的字段,除非原生程序需要和Java程序交互,否则很少会用到这个元注解

基本注解

@Service: 注解在类上,表示这是一个业务层bean

@Controller:注解在类上,表示这是一个控制层bean

@Repository: 注解在类上,表示这是一个数据访问层bean

@Component: 注解在类上,表示通用bean ,value不写默认就是类名首字母小写

@Autowired:按类型注入.默认属性required= tru

@Resource: 按名称装配。

启动注解

 SpringBootApplication

包括以下三个注解:

 @SpringBootConfiguration

          @Configuration: JavaConfig的功能,配置类,结合@Bean能够将对象注入到spring的IOC容器。@SpringBootConfiguration标注的类是配置类。

@EnableAutoConfiguration

         开启自动配置。 将spring和第三方库中的对象创建好,注入到spring容器避免写xml,去掉样例代码。 需要使用的对象,由框架提供。

 @ComponentScan 

         组件扫描器,<context:component-scan base-package="xxx包"/> 扫描@Controller, @Service, @Repository ,@Component注解, 创建他们的对象注入到容器

springboot约定:启动类,作为扫描包的根(起点)


二、配置

格式介绍

配置文件有两种格式分别properies 和  yamlyml)。

        properties 是Java 中的常用的一种配置文件格式,文件扩展名为properties。

语法格式是:key=value。key 是唯一的。

        yaml(Yet Another Markup Language)),是一种做配置文件的数据格式,文件扩展名是yaml 或yml(常用)

语法格式是:key:[空格]值。


YAML 基本语法规则:

 大小写敏感

 使用缩进表示层级关系

 缩进只可以使用空格,不允许使用Tab 键

 缩进的空格数目不重要,相同层级的元素左侧对齐即可

 #字符表示注释,只支持单行注释。#放在注释行的第一个字符

YAML 缩进必须使用空格,而且区分大小写,建议编写YAML 文件只用小写和空格。

YAML 支持三种数据结构

 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

 标量(scalars):单个的、不可再分的值,例如数字、字符串、true|false 等

存放路径:src/main/resource目录或者类路径的/config

读取配置文件信息

        Spring Boot 同时支持 properties yml  格式的配置文件。配置文件名称默认是 application 。我们可以使用application.properties 、 application.yml

读取配置文件的key 值,注入到Bean 的属性可用@Value,@Value 一次注入一个key 的值。

将多个key 值绑定到Bean 多个属性可以配合ConfigurationProperties 注解。 

在代码中访问属性还可以使用外部化配置的抽象对象Environment。使用Environment 的注入此对象,调用它的getProperty(String key)方法即可。

案例演示1

        需求:在application.properties 提供应用程序的name,owner, port 基本信息,程序读取这些数据,显示给用户。

        步骤1:新建maven项目,无需添加依赖

        步骤2:在application.properties 自定义配置项目

        步骤3:  创建SomeService 类读取app.name, app.owner,app.port 配置key。       

        注解@Value 读取单个值,语法${key:默认值}

     

@Service
public class SomeService {@Value("${app.name}")private String name;@Value("${app.owner}")private String owner;@Value("${app.port:8088}")private Integer prot;public void printValue(){//链接字符串StringJoiner joiner = new StringJoiner(";");joiner.add(name).add(owner).add(String.valueOf(prot));//打印出字符串String result = joiner.toString();System.out.println("result= "+ result);}

         步骤4:单元测试

        在test 目录下创建测试类,注入SomeService 对象,调用它的printValue()方法。


 嵌套读取bean信息

案例演示2

        需求:Bean 中包含其他Bean 作为属性,将配置文件中的配置项绑定到Bean 以及引用类型的成员。Bean 的定义无特殊要求。

        步骤1:在resources文件夹下新建 .yml 后缀的文件,添加依赖

       在 pom.xml 文件里添加以下依赖  

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

步骤2:新建pk02包,并建立两个类

//DoubBean 
@Configuration(proxyBeanMethods = false)
@ConfigurationProperties(prefix = "app1")
@Service
public class DoubBean {private String name;private String owner;private Integer port;private Seri ser;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getOwner() {return owner;}public void setOwner(String owner) {this.owner = owner;}public Integer getPort() {return port;}public void setPort(Integer port) {this.port = port;}public Seri getSer() {return ser;}public void setSer(Seri ser) {this.ser = ser;}@Overridepublic String toString(){return "DoubBean{ \n"+"网站名="+name+"\n" +",浏览器cookic="+owner+"\n" +",端口="+port+"\n" +"用户信息:"+ser+"}";}
// Seri 
public class Seri {private String username;private String userpass;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {this.userpass = userpass;}@Overridepublic String toString(){return "用户名:" + username +"  用户密码:" + userpass;}}

         步骤3:添加扫描包和单元测试方法

一定要先去启动类上面添加扫描注解,并设置好扫描的包


 读取Map,List 以及 Array 类型配置数据

案例演示3

Map,List 以及 Array 都能提供配置数据, 下面通过一个示例配置演示过程:

        步骤1:在刚才的 application.yml 文件接着写入不同类型数据

        步骤2:添加pk3包,新建以下类文件

//Users 
public class Users {private String name;private String sex;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString(){return "MyServer{ " +"name: " + name +"\n"+"sex: " + sex +"\n" +"age= "+age+"  }"+"\n";}
}
//ConutClass 
@Data
@ConfigurationProperties
public class ConutClass {private List<Servers> servers;private Map<String,Users> users;private String [] names;@Overridepublic String toString(){return "ConutClass{ \n"+"网站服务器:"+"\n"+servers+"\n" +"用户信息列表:"+"\n"+users+"\n" +"名字列:"+"\n"+names+"\n" +"}";}
}
//Servers 
public class Servers {private String title;private String ip;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}@Overridepublic String toString(){return "MyServer{ " +"title: " + title +"\n"+"ip: " + ip + "  }"+"\n";}
}

        步骤4:添加扫描包和测试单元

@ConfigurationPropertiesScan注解只能添加一次,所以多个扫描包可以用存放在大括号里面,用逗号隔开

 三、总结

在这篇文章中,我们重点关注了常用的注解和Bean的读取和测试。

        Spring Boot使用 application.properties 或 application.yml 文件来管理应用程序的配置

   @SpringBootApplication注解用于开启Spring Boot应用程序的启动类,它组合了@Configuration@EnableAutoConfiguration@ComponentScan的功能。@RestController注解将一个类标记为RESTful API的控制器,而@RequestMapping注解用于将HTTP请求映射到控制器方法上。

        另外,依赖注入的注解@Autowired,它可以自动注入依赖。最后是@Bean注解,它可以将方法返回的实例注册为Bean,并添加到Spring的应用程序上下文中。

本篇内容就到这了,如果有好的建议和不妥之处,欢迎大家评论区点赞留言转发

http://www.hrbkazy.com/news/6680.html

相关文章:

  • 微网站如何做微信支付宝支付接口百度关键词搜索引擎排名优化
  • 建站公司的服务内容百度搜索大数据查询
  • 网站建设与管理办法个人网页设计作品欣赏
  • 做国际交友网站翻译重庆seo什么意思
  • 新手容易上手的cms做企业网站网址推荐
  • 校园云网站建设英文seo外链
  • 网站部署到终端机怎么做福州网seo
  • 教育类网页设计素材网络优化这个行业怎么样
  • 网站建设 翰臣科技公司上饶seo博客
  • 怎么做查询数据输入的网站网络推广法
  • 网站的图片怎么制作网络营销主要做些什么工作
  • 百度基木鱼建站渠道推广费用咨询
  • wordpress批量删除函数杭州百度快照优化公司
  • 成都网站制作龙兵科技百度一下你就知道移动官网
  • 国外外包平台重庆网站seo多少钱
  • 做一个商城网站需要什么流程app软件开发
  • 百度工具网站改版搜索引擎下载
  • 怎么建设自己产品网站郑州seo线下培训
  • 如何做配音网站营销方案100例
  • 徐州网站开发多少钱百度爱采购竞价
  • wordpress的搜索功能网站内容优化方法
  • 深圳华强北做网站杭州seo网站哪家好
  • 做网站哪家便宜正安县网站seo优化排名
  • 网站建设具体流程网络推广需要什么
  • php7 mysql wordpress360手机优化大师下载
  • 做网站建设多少钱怎么看百度指数
  • 网站2级页面怎么做win10优化大师有用吗
  • 北京做网站维护整合营销传播案例分析
  • 在线建设网站制作百度广告代理商加盟
  • 广告设计毕业设计贴吧aso优化贴吧