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

网页链接怎么转换成pdfseo管家

网页链接怎么转换成pdf,seo管家,快速排名优化推广价格,专做运动装的网站目录 一、注解 元注解 基本注解 启动注解 二、配置 格式介绍 读取配置文件信息 案例演示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.hkea.cn/news/685953/

相关文章:

  • 郑州手机网站建设搜狗网站收录提交入口
  • 清风网站建设抖音推广方式有哪些
  • 工作室网站开发广东网站seo营销
  • 广州正佳广场攻略深圳债务优化公司
  • 如何自己免费建网站seo网站有哪些
  • 南昌网站建设案例如何制作自己的链接
  • wordpress大流量专业的网站优化公司
  • 做进口零食批发网站百度站长管理平台
  • 网站栏目建设存在的问题关键词简谱
  • 网站备案怎么那么麻烦google chrome 网络浏览器
  • 小米手机做网站服务器nba东西部最新排名
  • 做写字楼用哪个网站更好郑州seo代理外包
  • 做网站 淘宝营销策划思路
  • 网页设计要用到什么软件聊城seo优化
  • 用wordpress做网站百度推广管理
  • 一个空间可以放两个网站吗html模板网站
  • 做试用网站的原理网站推广优化平台
  • 软件工程培训机构学费亚马逊seo什么意思
  • 做恶搞网站软件有哪些苏州seo怎么做
  • 怎么做微信小说网站企业网络营销策划方案
  • 网站后台上传图片失败百度下载免费安装最新版
  • 镇江做网站需要多少钱企业网站模板设计
  • 西安seo优化系统网页seo
  • 如何用网站模板做网站广州网络营销推广
  • 承德手机网站建设seo推广排名
  • wordpress块引用一个网站可以优化多少关键词
  • 360网站卖东西怎么做的无锡seo优化公司
  • 邢台人民网站百度视频推广怎么收费
  • 常州天启建设公司网站高端快速建站
  • ppt模板免费下载网站不用登录seo测试工具