• ※JAVA获取资源文件内容※


    ※使用ResourceUtils工具类(基于GraphQL查询):

     1 package cn.itcast.haoke.dubbo.api.graphql;
     2 
     3 import cn.itcast.haoke.dubbo.server.service.HouseResourcesService;
     4 import graphql.GraphQL;
     5 import graphql.schema.GraphQLSchema;
     6 import graphql.schema.idl.RuntimeWiring;
     7 import graphql.schema.idl.SchemaGenerator;
     8 import graphql.schema.idl.SchemaParser;
     9 import graphql.schema.idl.TypeDefinitionRegistry;
    10 import org.springframework.beans.factory.annotation.Autowired;
    11 import org.springframework.context.annotation.Bean;
    12 import org.springframework.stereotype.Component;
    13 import org.springframework.util.ResourceUtils;
    14 
    15 import javax.annotation.PostConstruct;
    16 import java.io.File;
    17 import java.io.IOException;
    18 
    19 @Component
    20 public class GraphQLProvider {
    21     private GraphQL graphQL;
    22     @Autowired
    23     private HouseResourcesService houseResourcesService;
    24     @PostConstruct
    25     public void init() throws IOException{
    26         File file = ResourceUtils.getFile("classpath:haoke.graphqls");
    27         GraphQLSchema graphQLSchema = buildSchema(file);
    28         this.graphQL = GraphQL.newGraphQL(graphQLSchema).build();
    29     }
    30     private GraphQLSchema buildSchema(File file){
    31         TypeDefinitionRegistry typeRegistry = new SchemaParser().parse(file);
    32         RuntimeWiring runtimeWiring = buildWiring();
    33         SchemaGenerator schemaGenerator = new SchemaGenerator();
    34         return schemaGenerator.makeExecutableSchema(typeRegistry,runtimeWiring);
    35     }
    36     private RuntimeWiring buildWiring(){
    37         return RuntimeWiring.newRuntimeWiring().type("HaokeQuery",builder->builder.dataFetcher("HouseResources"
    38                 ,enviroment->{
    39             Long id = enviroment.getArgument("id");
    40             return this.houseResourcesService.queryHouseResourcesById(id);
    41                 })).build();
    42     }
    43     @Bean
    44     public GraphQL graphQL(){
    45         return graphQL;
    46     }
    47 }

    ※使用注解方式:

    ♬属性文件:mock-data.properties

    mock.indexMenu={"data":{"list":[{"id":1,"menu_name":"二手房","menu_logo":"home","menu_path":"/home","menu_status":1,"menu_style":null},{"id":2,"menu_name":"新房","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null},{"id":3,"menu_name":"租房","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null},{"id":4,"menu_name":"海外","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null},{"id":5,"menu_name":"地图找房","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null},{"id":6,"menu_name":"查公交","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null},{"id":7,"menu_name":"计算器","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null},{"id":8,"menu_name":"问答","menu_logo":null,"menu_path":null,"menu_status":null,"menu_style":null}]},"meta":{"status":200,"msg":"测试数据"}}
    

      ♬编写配置文件属性类:

    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.context.annotation.PropertySource;
    
    /*用于读取配置文件中的内容*/
    @Configuration
    @PropertySource("classpath:mock-data.properties")
    @ConfigurationProperties(prefix = "mock")
    @Data
    public class MockConfig {
        private String indexMenu;
        private String indexInfo;
          ...
    }
    

    ※基于org.apache.ibatis.io.Resources类获取字节输入流读取文件

    package cn.itcast.mybatis01.dao;
    
    import cn.itcast.mybatis01.domain.User;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    import static org.junit.Assert.*;
    
    public class MybatisTest {
        public static void main(String[] args) throws IOException {
            //1.读取配置文件
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            //2.创建SqlSessionFactory的构建者对象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //3.使用构建者创建工厂对象SqlSessionFactory
            SqlSessionFactory factory = builder.build(in);
            //4.使用SqlSessionFactory生产SqlSession对象
            SqlSession SqlSession = factory.openSession();
            //5.使用SqlSession创建dao接口的代理对象
            IUserDao userDao = SqlSession.getMapper(IUserDao.class);
            //6.使用代理对象执行查询所有方法
            List<User> users = userDao.findAll();
            for (User user : users) {
                System.out.println(user);
            }
            SqlSession.close();
            in.close();
        }
    }

    ※使用类加载器,并利用工具包转为字符串:

    import org.apache.commons.io.IOUtils;
    
    /*读取文件内容*/
        public static String readFileToString(String fileName){
            try {
                return IOUtils.toString(GraphQLSchema.class.getClassLoader().getResourceAsStream(fileName),"UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
  • 相关阅读:
    POJ——3070Fibonacci(矩阵快速幂)
    NOJ——1568走走走走走啊走(超级入门DP)
    NOJ——1624死胡同(胡搞模拟)
    jmeter断言
    jmeter问题
    廖雪峰Java9正则表达式-2正则表达式进阶-3分组匹配
    廖雪峰Java9正则表达式-1正则表达式入门-2正则表达式匹配规则
    廖雪峰Java9正则表达式-1正则表达式入门-1正则表达式简介
    使用uiautomator2进行webview页面的测试
    廖雪峰Java8JUnit单元测试-2使用JUnit-4超时测试
  • 原文地址:https://www.cnblogs.com/zhuo-zui/p/12199611.html
Copyright © 2020-2023  润新知