Spring诠释,散集积累
Spring注释,散集积累
@Configuration 传统方式: Java代码 复制代码 收藏代码 1.<beans> 2. <bean id="orderService" class="com.acme.OrderService"/> 3. <constructor-arg ref="orderRepository"/> 4. </bean> 5. <bean id="orderRepository" class="com.acme.OrderRepository"/> 6. <constructor-arg ref="dataSource"/> 7. </bean> 8.</beans> Java代码 复制代码 收藏代码 1.ApplicationContext ctx = new ClassPathXmlApplicationContext("application-config.xml"); 2.OrderService orderService = (OrderService) ctx.getBean("orderService"); 注解方式: Java代码 复制代码 收藏代码 1.@Configuration 2.public class ApplicationConfig { 3. 4. public @Bean OrderService orderService() { 5. return new OrderService(orderRepository()); 6. } 7. 8. public @Bean OrderRepository orderRepository() { 9. return new OrderRepository(dataSource()); 10. } 11. 12. public @Bean DataSource dataSource() { 13. // instantiate and return an new DataSource … 14. } 15.} Java代码 复制代码 收藏代码 1.JavaConfigApplicationContext ctx = new JavaConfigApplicationContext(ApplicationConfig.class); 2.OrderService orderService = ctx.getBean(OrderService.class); @Scope("prototype") Java代码 复制代码 收藏代码 1.@Scope("prototype") 2.public class PrintTask2 implements Runnable { 3. String name; 4. 5. public void setName(String name) { 6. this.name = name; 7. } 8. 9. @Override 10. public void run(){ 11. System.out.println(name + " is running."); 12. try{ 13. Thread.sleep(5000); 14. }catch(InterruptedException e){ 15. e.printStackTrace(); 16. } 17. System.out.println(name + " is running again."); 18. } 19.} 如果action或Service中不@Scope("prototype"),有可能报找不到xxxaction或Service的错误!写上这个就表示每次请求都重新创建一个action或Service,与SINGALON对应,俗称“多例”。 @Component Java代码 复制代码 收藏代码 1.@Component 2.@Scope("prototype") 3.public class PrintTask2 implements Runnable { 4. String name; 5. 6. public void setName(String name) { 7. this.name = name; 8. } 9. 10. @Override 11. public void run(){ 12. System.out.println(name + " is running."); 13. try{ 14. Thread.sleep(5000); 15. }catch(InterruptedException e){ 16. e.printStackTrace(); 17. } 18. System.out.println(name + " is running again."); 19. } 20.} 把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/> @Repository Java代码 复制代码 收藏代码 1.@Repository 2.public class DaoImpl implements IDao{ 3.} 应用于Dao层,把该类注册到Spring容器中 @Service Java代码 复制代码 收藏代码 1.@Service 2.public class ServiceImpl implements IService { 3. @Autowired 4. private IDao iDao; 5.} 应用于Service层,把该类注册到Spring容器中 @Controller Java代码 复制代码 收藏代码 1.@Controller 2.public class TestController { 3. @Autowired 4. private IService iService; 5.} 应用于Action层,把该类注册到Spring容器中 @Autowired , @Qualifier("XXX") Java代码 复制代码 收藏代码 1.@Service 2.public class TestServiceImpl { 3. @Autowired 4. @Qualifier("iTestDao2") 5. private ITestDao iTestDao; 6.} 在ITestDao接口标上@Autowired和@Qualifier注释使得ITestDao接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串("iTestDao2")来注入。否则可以省略,只写@Autowired
获取【下载地址】 【新技术】现在最流行的java后台框架组合java springmvc mybaits mysql oracle html5 后台框架源码