记录问题:springboot获取路径字符串

本文介绍了一种在Java中获取包含中文目录名的绝对路径的方法,并解决了路径中的中文编码问题,通过示例展示了如何正确地拼接路径以访问特定文件。

目的是想获取static下一个目录的绝对路径,再根据条件拼接某个文件名来获取此目录下的某个文件的绝对路径。使用项目里的一个aapt命令解析apk文件。

1.获取根目录路径:

ClassUtils.getDefaultClassLoader().getResource("").getPath()

打印结果:/F:/VAT%e9%87%8d%e6%9e%84%e9%a1%b9%e7%9b%ae/APP_backup/target/classes/

拼接获得绝对路径字符串无效。

原因:

(1)路径含有中文(我是直接运行备份的项目,文件夹名含中文),'%e9%87%8d%e6%9e%84%e9%a1%b9%e7%9b%ae'

(2)打印的路径多了一个‘/’

2.解决:中文转码,截取字符

java.net.URLDecoder.decode(mAaptPath)).substring(1)

3.总结

运行的项目,绝对路径最好不要含有中文,,



### 配置和使用Spring Boot项目中的请求路径 在Spring Boot应用程序中,配置和使用请求路径主要依赖于控制器类及其方法上的注解。具体来说: #### 使用`@RequestMapping`定义基本映射 为了指定HTTP请求到特定的方法上,可以利用`@RequestMapping`注解来设定URL模式。此注解可用于类级别以提供公共前缀,也可用于方法级别以进一步细化具体的端点。 ```java @RestController @RequestMapping("/api/v1") public class ExampleController { @GetMapping("/hello") // 组合注解,等价于 @RequestMapping(value="/hello", method=RequestMethod.GET) public String sayHello() { return "Hello, world!"; } } ``` 上述代码片段展示了如何通过组合注解简化常见的HTTP动词对应的路由声明[^2]。 #### 利用占位符实现动态路径参数 当需要传递变量作为路径的一部分时,可以通过大括号包裹名称的方式引入路径变量,并借助方法参数接收这些值。 ```java @GetMapping("/users/{id}") public ResponseEntity<User> getUserById(@PathVariable Long id) { User user = userService.findById(id); if (user != null) { return new ResponseEntity<>(user, HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } ``` 这里展示了一个获取单个用户的API接口设计实例,其中`{id}`即为路径变量。 #### 处理查询字符串和其他类型的输入数据 除了路径参数外,还可以轻松处理来自客户端提交的数据,比如表单字段或JSON体内的属性。对于简单的键值对形式的查询参数,则可采用`@RequestParam`来进行绑定;而对于复杂对象则推荐使用`@RequestBody`配合Jackson库自动完成反序列化操作。 ```java @PostMapping("/search") public List<Item> searchItems( @RequestParam(required=false, defaultValue="0") int page, @RequestParam(required=false, defaultValue="10") int size){ Pageable pageable = PageRequest.of(page, size); return itemService.searchAll(pageable).getContent(); } @PostMapping("/items") public Item addItem(@Valid @RequestBody Item newItem){ return itemRepository.save(newItem); } ``` 以上例子说明了分页检索资源列表以及新增记录的不同场景下的最佳实践。 确保网络环境配置正确,特别是代理设置、端口配置等,以便让外部调用顺利抵达部署好的Spring Boot服务[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值