GH-1261: initial steps to include details about used annotations at injection points

This commit is contained in:
Martin Lippert
2024-06-05 14:51:20 +02:00
parent 9564981d5b
commit 6f9d1428ef
25 changed files with 1328 additions and 78 deletions

View File

@@ -3,6 +3,8 @@ package org.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import org.springframework.beans.factory.annotation.Qualifier;
@SpringBootApplication
public class MainClass {
@@ -21,4 +23,11 @@ public class MainClass {
return new BeanClass2();
}
@Bean
@Qualifier("qualifier1")
@Profile({"testprofile","testprofile2"})
BeanClass2 bean3() {
return new BeanClass2();
}
}

View File

@@ -1,6 +1,7 @@
package org.test.injections;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.test.BeanClass1;
import org.test.BeanClass2;
@@ -8,8 +9,12 @@ import org.test.BeanClass2;
@Service
public class AutowiredInjectionService {
@Autowired private BeanClass1 bean1;
@Autowired private BeanClass2 bean2;
@Autowired
private BeanClass1 bean1;
@Autowired
@Qualifier("qual1")
private BeanClass2 bean2;
public BeanClass1 getBean1() {
return bean1;

View File

@@ -0,0 +1,25 @@
package org.test.injections;
import org.test.MainClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.ImportRuntimeHints;
import org.springframework.beans.factory.annotation.Qualifier;
import org.test.BeanClass1;
import org.test.BeanClass2;
import org.test.ManuallyCreatedBeanWithConstructor;
@Configuration
@Qualifier("qualifier")
@ImportRuntimeHints(MainClass.class)
public class ConfigurationWithInjectionsAndAnnotations {
@Bean
@DependsOn({"bean1", "bean2"})
ManuallyCreatedBeanWithConstructor beanWithAnnotationsOnInjectionPoints(@Qualifier("q1") BeanClass1 bean1, @Qualifier("q2") BeanClass2 bean2) {
return new ManuallyCreatedBeanWithConstructor(bean1, bean2);
}
}

View File

@@ -2,9 +2,14 @@ package org.test.springdata;
import java.util.List;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Profile;
import org.springframework.data.repository.CrudRepository;
@Qualifier("repoQualifier")
@Profile({"prof1", "prof2"})
public interface CustomerRepository extends CrudRepository<Customer, Long> {
List<Customer> findByLastName(String lastName);
}