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

做贸易要看什么网站专业软文发布平台

做贸易要看什么网站,专业软文发布平台,国际网站怎么样做,网站建设插件目录 一、注解 元注解 基本注解 启动注解 二、配置 格式介绍 读取配置文件信息 案例演示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.ds6.com.cn/news/86274.html

相关文章:

  • 南宁大型网站开发推广引流平台app大全
  • 软件开发工程师招聘简章pdfseo搜外
  • 手机商城软件下载百色seo外包
  • 火车头 wordpress发布seo免费优化公司推荐
  • 做笑话网站东莞网站推广技巧
  • 十堰网站建设公司种子资源地址
  • 软件开发文档最新seo课程
  • 用网站模板做新网站百度一下你就知道
  • wordpress 多语言插件武汉建站优化厂家
  • 做网站建设的销售薪水搜搜
  • 给诈骗网站做网站构成什么罪全网推广系统
  • 电脑网站滚动字幕怎么做windows优化大师是什么
  • 国外毕业设计网站数据分析网官网
  • 公司购买网站怎么做分录为什么seo工资不高
  • 金蝶云企业云平台seo推广培训资料
  • 深圳好的网站建设公司成都十大营销策划公司
  • 网站的域名都有哪些问题青岛seo搜索优化
  • 电子政务政府门户网站建设怎么免费建立网站
  • 乌克兰网站后缀武汉seo 网络推广
  • 宁阳网站设计百度关键词搜索广告的优缺点
  • html5做手机网站嘉兴网络推广
  • 怎样做网站呢樱桃电视剧西瓜视频在线观看
  • 高端移动网站开发百度推广怎么联系
  • 团购手机网站怎么做北京全网营销推广
  • 温州二井建设有限公司网站网站优化公司哪家好
  • 在360网站做公告怎么弄百度推广投诉人工电话
  • 肇庆网站优化建设磁力搜索神器
  • 专门做高仿的网站上海平台推广的公司
  • 网站开发说明seo外包顾问
  • 祭奠祭祀网站开发功能需求百家号优化