相关疑难解决方法(0)

Spring中的@ Component,@ Repository和@Service注释有什么区别?

@Component,@Repository@Service注释互换在Spring中,还是他们提供任何特殊的功能,除了作为一个符号设备?

换句话说,如果我有一个Service类并且我将注释更改@Service@Component,它仍然会以相同的方式运行吗?

或者注释是否也会影响类的行为和功能?

java spring annotations spring-mvc

1969
推荐指数
26
解决办法
86万
查看次数

@Bean和@Component注释是否相同,但对于Spring Framework中的不同目标?

我是否正确,认为@Bean和@Component注释是相同的,但首先是类,另一个是方法?

在这两种情况下,容器只会创建适当的bean,对吧?

java spring annotations

12
推荐指数
1
解决办法
8614
查看次数

基于Java与基于注释的配置/自动装配

当我使用Spring框架时,我经常看到2个基于Java和基于注释的配置/自动装配术语。

基于Java的与基于注释的配置/自动装配是否有所不同?

如果它们不同,您能告诉我它们之间有什么不同吗?

spring

9
推荐指数
2
解决办法
8257
查看次数

Spring Core与xml配置中的自动装配冲突

Spring @Autowired和@Qualifier为参考

我们有以下示例可解决自动装配冲突:

public interface Vehicle {
     public void start();
     public void stop();
}
Run Code Online (Sandbox Code Playgroud)

有两个bean,CarBike实现Vehicle接口。

@Component(value="car")
public class Car implements Vehicle {

     @Override
     public void start() {
           System.out.println("Car started");
     }

     @Override
     public void stop() {
           System.out.println("Car stopped");
     }
 }

@Component(value="bike")
public class Bike implements Vehicle {

     @Override
     public void start() {
          System.out.println("Bike started");
     }

     @Override
     public void stop() {
          System.out.println("Bike stopped");
     }
}

@Component
public class VehicleService {

    @Autowired
    @Qualifier("bike")
    private Vehicle …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection

7
推荐指数
2
解决办法
415
查看次数

在Spring中什么时候应该使用@Component?

从软件设计的角度来看,什么时候应该使用@Component而不是传统的Java类(需要通过“ new”显式实例化)?例如,如果我们需要创建以下模式之一的类:

  • 适配器

  • 正面

  • 战略

  • 译者

类是否应该具有@Component注释(或任何Spring衍生注释,例如@Repository/ @Controller/ @Service)?

java architecture spring

5
推荐指数
1
解决办法
259
查看次数

在Spring中如何在Java配置中使用setter注入?

我正在尝试学习SpringMVC Web应用程序中的setter注入,我可以找到所有示例,并使用展示了xml。但是,有人告诉我不建议使用xml,所有新应用程序都应使用java配置来完成。这是错误的,我应该使用xml来配置我的应用程序吗?

我应该在哪里声明bean,我该怎么做?

这是我所看到的示例之一,但是它是使用xml实现的。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
                       http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="message"
      class="org.springbyexample.di.xml.SetterMessage">
    <property name="message" value="Spring is fun." />
  </bean>

</beans>
Run Code Online (Sandbox Code Playgroud)

java xml spring dependency-injection

4
推荐指数
1
解决办法
5197
查看次数

我何时使用@Bean而不是@Component?

我对春天的一些事感到困惑.

首先,我什么时候想在一个显式的@Configuration类上使用@Component和一个@Bean来实现@Component?

我可以考虑使用@Component的唯一原因是在@Configuration类中保存自己创建的@Bean方法.还有其他原因吗?

也就是说,如果我使用@Configuration类,我似乎可以手动编写这些bean的接线.IOW,我在@Component上使用@Inject我现在可以在@Bean构造函数中显式指定依赖项(当我在bean方法中创建它时).那么我什么时候想使用@Inject?我觉得我要在这里挖一个兔子洞.

是否有任何好的教程或博客涵盖了做出这些决定的最佳实践或规则?

谢谢

spring dependency-injection

3
推荐指数
1
解决办法
757
查看次数

Spring的@Bean批注和@Component批注有什么区别?

对您来说这可能是一个非常简单的问题,但是我阅读了许多文档并且感到非常困惑。我们可以使用@Component而不是@Bean或@Bean来代替@Component(以及@Repository @Service @Controller)吗?

干杯

spring spring-annotations spring-boot

3
推荐指数
1
解决办法
1994
查看次数

什么时候应该使用@Configuration而不是@Service/@Controller/@Component来定义bean

我试图更好地理解 Spring 框架,我的问题基本上是:与 @Service/@Controller/@Repository (或 @Component,如果不是其他 3 个)相比,@Configuration 注释有什么好处?

据我了解,@Configuration 是 bean 的来源,但是通过仅用 @Service 等标记我的类,它就变成了一个 bean,并且会被组件扫描拾取?

据我了解,我可以拥有一个 @Configuration 类,该类具有创建几个 bean(例如某些服务)的方法,或者直接使用 @Service 注释类。

拥有 @Configuration 类有什么好处?或者 @Configuration 对于我错过的一些边缘情况最有用?

我在某处读到@Value注释可以在@Configuration注释的类中使用,但是我可以在我们的代码库中看到我们在其他没有@Configuration标记的地方使用它,所以这似乎不是必需的

有人告诉我这里有一个线程: What is the Difference between @Configuration and @Component in Spring?

但我觉得它只是开始解释注释之间的区别,而不是何时/使用一个注释相对于另一个注释的好处是什么。

谢谢!

java spring spring-boot

3
推荐指数
1
解决办法
6501
查看次数

Spring JavaConfig 与带注释的类

在 JavaConfig 中定义 bean 与仅注释类有何不同?

Java配置:

@Configuration
public class AppConfig {
    @Bean
    public FilterRegistrationBean filterRegistrationBean () {
        SomeFilter filter = new SomeFilter();

        return SomeFilter;
    }
Run Code Online (Sandbox Code Playgroud)

注释类

@Bean
public class SomeFilter extends FilterRegistrationBean {
}
Run Code Online (Sandbox Code Playgroud)

java spring

2
推荐指数
1
解决办法
1125
查看次数

SpringBoot:如何使不紧密耦合到框架的泛型类?

前端开发人员正在研究我的第一个Java Spring Boot API。我已经阅读了许多有关Spring / Spring Boot中“最佳实践”的文章,并且一直在尝试重构我的代码以遵循这些实践。

下面有一个通用类的示例,该类用于处理各种服务的所有HTTP请求。最初,我用@Component注释对此类进行注释,但是正如我提到的那样,我试图学习并遵循Spring的“最佳实践”。我尤其有兴趣实施本文有关最佳实践的内容(本文编号3和4)。那就是说应该避免使用@component,因为我们不想与Spring框架紧密耦合,而我们想避免“整个类路径扫描”。

@Slf4j
public class HttpService {

  private HttpServletRequest request;
  private RestTemplate restTemplate;

  public HttpService(HttpServletRequest request, RestTemplateBuilder restTemplateBuilder) { ... }

  public String get(String url, String id) { ... }
}
Run Code Online (Sandbox Code Playgroud)

使用@component注释,我的服务可以按预期工作,但是当我删除它时,出现异常:

org.springframework.beans.factory.NoSuchBeanDefinitionException:没有合格的bean类型

在Java中,这似乎是一个非常常见的例外,因为存在很多问题,但是这些解决方案对我而言并不奏效。

我希望社区能够帮助我回答以下两个问题:

  1. 我如何正确地使它成为不紧密耦合到Spring的可用泛型类?
  2. 这实际上是Spring开发的正确方法,还是我对本文的阅读太深了?

java spring spring-boot

2
推荐指数
1
解决办法
106
查看次数