深蓝词库转换:打破20+输入法壁垒的终极解决方案
2026/6/5 14:37:54
public class UserController { @RequestMapping("/list") public List<User> list() throws FileNotFoundException { //1.获取数据 InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt"); ArrayList<String> list = IoUtil.readLines(in, StandardCharsets.UTF_8,new ArrayList<>()); //2.解析用户信息,封装为user对象 -> list集合 List<User> userList =list.stream().map(line -> { String[] items = line.split(","); Integer id = Integer.parseInt(items[0]); String username = items[1]; String password = items[2]; String name = items[3]; Integer age = Integer.parseInt(items[4]); LocalDateTime updateTime = LocalDateTime.parse(items[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); return new User(id,username,password,name,age,updateTime); }).toList(); // 3.返回数据 return userList; } }缺点:功能不单一,复用性差,无法分层解耦,维护难等等
示例:
package com.itheima.springbpptweb01.controller; import com.itheima.springbpptweb01.pojo.User; import com.itheima.springbpptweb01.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.FileNotFoundException; import java.util.List; @RestController // 包装了Conroller public class UserController { @Autowired private UserService userService; @RequestMapping("/list") public List<User> list() throws FileNotFoundException { // 1.调用service,获取数据 List<User> userList = userService.findAll(); //3.返回数据(josn) return userList; } }示例:
package com.itheima.springbpptweb01.service; import com.itheima.springbpptweb01.dao.UserDao; import com.itheima.springbpptweb01.dao.UserDaoImpl; import com.itheima.springbpptweb01.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; @Service //@Component public class UserServiceImpl implements UserService{ @Autowired // 用多态创建UserDao private UserDao userDao; @Override public List<User> findAll() { // 1.调用dao层方法获取 数据 List<String> list = userDao.findAll(); //2.解析用户信息,封装为user对象 -> list集合 List<User> userList =list.stream().map(line -> { String[] items = line.split(","); Integer id = Integer.parseInt(items[0]); String username = items[1]; String password = items[2]; String name = items[3]; Integer age = Integer.parseInt(items[4]); LocalDateTime updateTime = LocalDateTime.parse(items[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); return new User(id,username,password,name,age,updateTime); }).toList(); return userList; } }示例:
package com.itheima.springbpptweb01.dao; import cn.hutool.core.io.IoUtil; import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @Repository // @Repository("userDao") 这是指定Bean的名字,IOC容器的,通常不用 //@Component public class UserDaoImpl implements UserDao{ @Override public List<String> findAll() { // InputStream in = new FileInputStream(new File("D:\\Java代码放置地\\JAVA_WEB\\web-ai-pj01\\maven-projectDemo1\\springbppt-web-01\\src\\main\\resources\\user.txt")) InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt"); ArrayList<String> list = IoUtil.readLines(in, StandardCharsets.UTF_8,new ArrayList<>()); return list; } }通过三层架构便可达成高内聚低耦合的编程思想
@Autowired注解的使用@Service
@Component的特化版本@Controller
@RequestMapping配合使用@Autowired是 Spring 框架提供的一个注解,用于实现依赖注入(Dependency Injection, DI)。它允许 Spring 容器自动将所需的依赖对象注入到目标组件中,无需手动编写代码来创建或查找依赖。