私はxml構成ファイルで定義しました:
<bean id="bootstrap" class="com.package.Bootstrap"></bean>
これは正常に動作します。
ブートストラップクラス:
public class Bootstrap {
@PostConstruct
public void onServerStart() {
System.out.println("PRINTSSSSSSSSSSSSSSSSSSS");
}
}
メソッドが起動されます。
しかし、どうすればxml部分を取り除き、代わりにBeanになるようにbootstrap=に注釈を付けることができますか?
私が持っています
<mvc:annotation-driven />
<context:annotation-config />
そして
<context:component-scan base-package="com.package" />
しかし、私は注釈が何であるか疑問に思っていましたを置き換える必要があります:
<bean id="bootstrap" class="com.package.Bootstrap"></bean>
このオンラインと春のドキュメントで何も見つかりませんでした:(
これに関するドキュメントがあります。 @Component
のようなステレオタイプの注釈が必要になります。
これは私が作成した簡単な例です。
Main.Java
package the.test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
public class Main {
public static void main(String[] args) {
AbstractApplicationContext aac = new AnnotationConfigApplicationContext(Person.class, Phones.class);
Person person = aac.getBean(Person.class);
System.out.println(person.getPhones().getPhoneOne());
System.out.println(person.getPhones().getPhoneTwo());
System.out.println(person.getSurname());
System.out.println(person.getName());
System.out.println(person.getAge());
aac.close();
}
}
Person.Java
package the.test;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
//you may use @ComponentScan("the.test") here and omit declaring
//"Phone.class" in the main method
public class Person {
private int age;
private String name;
private String surname;
private Phones phones;
public int getAge() {
return age;
}
@Value("33")
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
@Value("John")
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
@Value("Due")
public void setSurname(String surname) {
this.surname = surname;
}
public Phones getPhones() {
return phones;
}
@Resource
public void setPhones(Phones phones) {
this.phones = phones;
}
}
Phones.Java
package the.test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Phones {
private String PhoneOne;
private String PhoneTwo;
public String getPhoneOne() {
return PhoneOne;
}
@Value("987654321")
public void setPhoneOne(String phoneOne) {
PhoneOne = phoneOne;
}
public String getPhoneTwo() {
return PhoneTwo;
}
@Value("123456")
public void setPhoneTwo(String phoneTwo) {
PhoneTwo = phoneTwo;
}
}
これは完全にSpring Annotationに基づいており、spring framework 4.2.5で作成されています
それが役に立てば幸い。