Spring Java @Configuration
@Configuration注解可从上一章Spring.Ioc中了解到,在annotation包下的ConfigAnnotation.java,即使用了@Configuration、@ComponentScan两个注解,实现了Spring applicationContext.xml的配置文件功能,而代码其意可以理解为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package annotation; package annotation;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;
@Configuration @ComponentScan("annotation") public class ConfigAnnotation {
|
其中@Configuration将ConfigAnnotation.java成为了一个配置类,根据@Configuration注解,可让ConfigAnnotaation.java类成为相当于Spring XML中的配置文件。而@ComponentScan注解实现了Spring XML配置文件的语法“<context:component - scan base -package="Bean 包路径”/> “
Dao
Java Spring TestDao.java
1 2 3 4 5
| package annotation.dao;
public interface TestDao { public void save(); }
|
Spring IoC TestDao.java
1 2 3 4 5
| package annotation.dao;
public interface TestDao { public void save(); }
|
Service
Java Spring TestServce
1 2 3 4 5 6 7 8 9 10 11
| package service; import dao.TestDao; public class TestService { TestDao testDao; public void setTestDao (TestDao testDao) { this.testDao = testDao; } public void save() { testDao.save(); } }
|
Spring IoC TestService
1 2 3 4
| package annotation.service; public interface TestService { public void save(); }
|
javaConfig
JavaConfig.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package javaConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;
import controller.TestController; import dao.TestDao; import service.TestService; @Configuration public class JavaConfig { @Bean public TestDao getTestDao() { return new TestDao(); }
@Bean public TestService getTestService() { TestService testservice = new TestService(); testservice.setTestDao(getTestDao()); return testservice; } @Bean public TestController getTestController() { TestController testcontroller = new TestController(); testcontroller.setTestService(getTestService()); return testcontroller; }
}
|
TestConfig.java
1 2 3 4 5 6 7 8 9 10 11 12
| package javaConfig; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import controller.TestController; public class TestConfig { public static void main (String args[]) { AnnotationConfigApplicationContext annotationconfigapplicationcontext = new AnnotationConfigApplicationContext(JavaConfig.class); TestController testcontroller = annotationconfigapplicationcontext.getBean(TestController.class); testcontroller.save(); annotationconfigapplicationcontext.close(); } }
|
从Spring Java 与Spring IoC 来相比,Spring Java在类的方面很明显比Spring IoC少了一个类,但相比之下Java Script的代码比Spring IoC少了许多。但Java Script @Bean注解来完成@ComponentScan自动扫描的功能与服务。
⬅️ Go back