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 后台框架源码