温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Parameter参数怎么注入

发布时间:2026-09-13 14:21:58 来源:亿速云 阅读:82 作者:小樊 栏目:编程语言

在 Java 里,“Parameter 参数怎么注入”要看你具体指哪种场景。下面按常见情况给你总结一下:


一、Spring MVC(Controller 方法参数注入)✅ 最常见

1. 普通请求参数(@RequestParam

@GetMapping("/test")
public String test(@RequestParam("name") String name) {
    return name;
}

请求:/test?name=Tom


2. 路径参数(@PathVariable

@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Long id) {
    return "id=" + id;
}

请求:/user/1


3. JSON 请求体(@RequestBody

@PostMapping("/user")
public String addUser(@RequestBody User user) {
    return user.toString();
}

前端传 JSON:

{
  "name": "Tom",
  "age": 18
}

4. 请求头参数(@RequestHeader

@GetMapping("/header")
public String header(@RequestHeader("Authorization") String token) {
    return token;
}

5. Cookie 参数(@CookieValue

@GetMapping("/cookie")
public String cookie(@CookieValue("sessionId") String sessionId) {
    return sessionId;
}

二、Spring Bean 构造 / 属性注入(依赖注入)

1. 构造器注入(推荐)

@Service
public class UserService {
    private final UserRepository repository;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}

2. @Autowired 字段注入

@Service
public class UserService {
    @Autowired
    private UserRepository repository;
}

3. @Value 注入配置参数

@Value("${app.name}")
private String appName;

三、MyBatis / JPA 的 Parameter 注入

MyBatis

@Select("SELECT * FROM user WHERE id = #{id}")
User findById(@Param("id") Long id);

JPA

@Query("FROM User u WHERE u.name = :name")
List<User> findByName(@Param("name") String name);

四、自定义 Parameter(方法参数解析器)

如果你想自定义参数注入规则,可以实现:

public class MyArgumentResolver implements HandlerMethodArgumentResolver

然后注册到 Spring:

@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
    resolvers.add(new MyArgumentResolver());
}

总结一句话

Controller 参数用注解注入,Bean 用 DI 注入,SQL 用 @Param 注入

如果你能告诉我你用的是 Spring / Spring Boot / MyBatis / JAX-RS / 其他框架,我可以给你更精准的例子。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI