Springmvc注解注入的简单demo
来源:互联网 发布:oa软件开发 编辑:程序博客网 时间:2024/06/09 08:43
今天看了注解注入觉得确实简化了xml配置,一般情况下Spring容器要成功启动的三大要件分别是:Bean定义信息,Bean实现类,以及spring本身。如果采取基于XML的配置,Bean信息和Bean实现类本身是分离的,而采用注解基于注解配置的方式,Bean定义信息通过在Bean实现类上标注注解实现,这种方式确实简化了xml配置,但是是不是某种程度增加了耦合?
常用的注解有Autowired、Resource、Qualifier、Service、Controller、Repository、Component,其中作用如下:
Autowired是自动注入,自动从spring的上下文找到合适的bean来注入,主要用来消除setter和getter方法
Resource用来指定名称注入
Qualifier和Autowired配合使用,指定bean的名称
Service,Controller,Repository分别标记类是Service层类,Controller层类,数据存储层的类,spring扫描注解配置时,会标记这些类要生成bean。
Component是一种泛指,标记类是组件,spring扫描注解配置时,会标记这些类要生成bean。
- 基于注解的方式
1 package com.xsf.springtest; 2 3 import org.springframework.stereotype.Repository; 4 5 6 @Repository 7 public class kiteDao { 8 9 private String driverType = "天空";10 11 public kiteDao(String palce) {12 this.driverType = place;13 }14 15 public kiteDao() {16 17 }18 19 public void flyKite(String kite) {20 String insertMsg = String.format("把风筝 %s 放到了 %s", kite, driverType);21 System.out.println(insertMsg);22 }23 24 }
下面使用常用的Autowired将刚才定义的Bean注解到addkite中去,该类为service类,因此该类标注@Service注解
1 package com.xsf.springtest; 2 3 import javax.annotation.Resource; 4 5 import org.springframework.beans.factory.annotation.Autowired; 6 import org.springframework.beans.factory.annotation.Qualifier; 7 import org.springframework.stereotype.Service; 8 9 @Service10 public class kiteService {11 12 @Autowired13 //将前面定义的kiteDao类的实例就会自动注入到kitedao的实例中了14 private kiteDao kitedao;15 16 public void addkite(String kite) {17 this.kitedao.flyKite(kite);18 }19 }
最后一个写一个测试代码,运行下面的测试代码即可看到信息
1 package com.xsf.springtest; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.annotation.AnnotationConfigApplicationContext; 5 import org.springframework.context.support.ClassPathXmlApplicationContext; 6 7 8 public class flyKiteTest 9 {10 public static void main( String[] args )11 {12 //它的构造函数接受一个package的名称,来限定要扫描的package。然后就可以通过appContext的getBean方法获得的实例了13 ApplicationContext appContext = new AnnotationConfigApplicationContext("com.xsf.springtest");14 15 ;16 kiteService service = appContext.getBean(kiteService.class);17 service.addkite("大蝴蝶");18 }19 }
- 注解与xml混合的方式
在source文件夹下面新建spring.xml文件这里的bean id为kitedao与kiteService中的一致若不一致会报错(或者在@Autowired 后加上 @Qualifier("###")将kiteService中的kitedao换做对应的###即可)
1 <?xml version="1.0" encoding="utf-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 6 http://www.springframework.org/schema/context 7 http://www.springframework.org/schema/context/spring-context-3.0.xsd "> 8 9 <context:annotation-config />10 <!-- 扫描包 -->11 <context:component-scan base-package="com.xsf.springtest">12 </context:component-scan>13 14 <!-- 定义一个id为kitedao的Bean 他的构造函数palce的值为sqlite -->15 <bean id="kitedao" class="com.xsf.springtest.kiteDao">16 <constructor-arg name="place" value="树上" />17 </bean>18 </beans>19
此时测试代码中使用ApplicationContext appContext = new ClassPathXmlApplicationContext("/spring.xml");连接配置文件即可
1 package com.xsf.springtest; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.annotation.AnnotationConfigApplicationContext; 5 import org.springframework.context.support.ClassPathXmlApplicationContext; 6 7 8 public class flyKiteTest 9 {10 public static void main( String[] args )11 {12 //它的构造函数接受一个package的名称,来限定要扫描的package。然后就可以通过appContext的getBean方法获得的实例了13 //ApplicationContext appContext = new AnnotationConfigApplicationContext("com.xsf.springtest");14 //通过spring配置文件加载类15 ApplicationContext appContext = new ClassPathXmlApplicationContext("/spring.xml");16 kiteService service = appContext.getBean(kiteService.class);17 service.addkite("大蝴蝶");18 }19 }
- Springmvc注解注入的简单demo
- springmvc 简单的注解
- SpringMVC的注解和依赖注入(IOC)
- springmvc+freemarker的简单demo
- springmvc+freemarker的简单demo
- springMVC+Hibernate简单的Demo
- springMVC 简单的登录demo
- 一个简单的SpringMVC Demo
- 简单的Springmvc基于注解
- springMVC注解的简单使用
- 【PHP】 简单的SQL注入Demo
- quartz基于注解的简单使用demo
- SpringMVC简单的demo参照李守宏视频
- websocket+springmvc 简单的demo实现
- 搭建最简单的springmvc架构demo
- springMVC model类注解注入
- HelloWorld版的SpringMVC使用注解驱动的依赖注入
- HelloWorld版的SpringMVC使用注解驱动的依赖注入
- 剑指offer面试题5 从头到尾打印链表(java)
- 剑指offer面试题6 重建二叉树(java)
- golang接口
- Map俩种遍历方式
- Git 解决一个电脑多用户情况(win7)
- Springmvc注解注入的简单demo
- 剑指offer-面试题7:俩个栈实现队列(c)
- 延长电池续航时间--测量电池用量
- layout文件夹中activity_main.xml与fragment_main.xml文件的处理记录
- Javassist Enhancement failed
- 将博客搬至CSDN
- MD5加密
- win7(64位)php5.5-Apache2.4-mysql5.6环境安装
- C++ 高级进阶攻略 Step Three