1、認識JavaConfig
JavaConfig是Spring的一個子專案,在Spring4之后成為一個核心功能
JavaConfig中使用的注解:
-
@Configuration
在類上打上這一標簽,表示這個類是配置類
-
@ComponentScan
相當于xml的
<context:componentscan basepakage=""/> -
@Import(MyConfig2.class)
匯入其他的配置類,合并配置資訊,相當于xml中的
<import resource="xxx.xml"/> -
@Bean
bean的定義,相當于xml的
<bean id="objectMapper" class="org.codehaus.jackson.map.ObjectMapper" /> -
@EnableWebMvc
相當于xml的
<mvc:annotation-driven/> -
@ImportResource
相當于xml的
<import resource="applicationContext-cache.xml"/> -
@PropertySource
spring 3.1開始引入,它是基于java config的注解,用于讀取properties檔案
-
@Profile
spring3.1開始引入,一般用于多環境配置,
激活時可用@ActiveProfiles注解,@ActiveProfiles("dev")
等同于xml配置
<beans profile="dev">
<bean id="beanname" class="com.pz.demo.ProductRPC"/>
</beans>
<!--激活該profile spring.profiles.active,也可設定默認值 spring.profiles.default-->
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>dev</param-value>
</context-param>
XML配置唯一的問題是,只有在運行時環境時你才能發現各種配置及語法錯誤,但是如果使用JavaConfig的方式的話,它會在編碼時提示這些問題,
JavaConfig類能互相import合并配置或是繼承并重寫其中的Bean方法,
這種Java配置類的方式就不需要使用Spring的xml配置了, 全部由Java類+注解的方式實作,實作如下:
物體類:
@Component //注入bean
public class User {
private String name;
public String getName() {
return name;
}
@Value("ps") //屬性值注入
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
配置類:
@Configuration //Configuration代表這是一個配置類,就如applicationContext.xml
@ComponentScan("com.spong.pojo") //掃描指定包下的使用注解注入的類
@Import(MyConfig2.class) //匯入其他的配置類,配置資訊合并
public class MyConfig {
//注冊一個bean,相當于xml中的bean標簽
//方法名就相當于bean中的id
//回傳值就相當于bean中的class
@Bean
public User getUser(){
return new User(); //回傳要注入到bean的物件
}
}
測驗類:
public class MyTest {
public static void main(String[] args) {
//如果完全使用了配置類配置,就只能通過AnnotationConfig的背景關系物件獲取容器,通過配置類的class物件來加載bean
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User user = context.getBean("getUser",User.class);
System.out.println(user);
}
}
注意:在Web環境中,需要在web.xml中加入如下代碼:
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.packtpub.learnvaadin.springintegration.SpringIntegrationConfiguration</param-value>
</context-param>
如有錯誤,歡迎大佬指正!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84938.html
標籤:Java
下一篇:星濤:SSM框架整合
