一:@Autowired(按类型注入)
1.1经过 @Autowired的使用来消除 set ,get方法。
@Autowired
private Dao dao;
这样就能够删除set ,get方法和spring中的相关配制了。
<bean id="service" class="com.Servcie">
<property name="dao" ref="dao">
</bean>
<bean id="dao" class="com.dao"/>spring
1.2经过@Autowired属的Setter方法给父类中的属性注入值。
@Autowired
public void setDataSource(DataSource ds){
super.setDataSource(ds);
}json
1.3当不能肯定 Spring 容器中必定拥有某个类的 Bean 时,能够在须要自动注入该类 Bean 的地方可使用 @Autowired(required = false) ,这等于告诉 Spring:在找不到匹配 Bean 时 也不报错。@Autowired(required = false)
二:@Resource(按名称注入)
1.1
@Resource(name="dao")
private Dao dao;
@Repository("dao")
Public class Dao{}
三:@Controller
1.1 EG: @Controller("com.LogAction") //标识控制器bean id
四:@RequestMapping
1.1EG: @RequestMapping("log/login.htm",
method="RequestMethod.POST",
headers="Content-Type=application/json",
consumes={"application/json"},
produces={"application/json"})
参数有(value={"",""},method={"RequestMethod.GET",""},params={"submitFlag=create",""}...)
value:请求的url,params :请求的参数中含有该值;在@RequestMapping 中 params 的参数组合使用是 且的意思
headers:请求参数 Content-Type=application/json 表示客户端发送的文件内容类型,从而服务器按这种类型来解析;
Accept=application/xml 表示客户端只接收该类型内容从而服务器发送该类型数据
headers="Content-Type=application/json" 对应--> consumes="application/json"
headers="Accept=application/json" 对应--> produces="application/json"
consumes:表示服务器只能消费的数据类型;produces:标示服务器只负责生产的数据
五:@Component = @Service or @Reponsitory
1.1 当组件描述不明确时能够统一用@Component
六:参数绑定注解
数组
一、@RequestParam绑定单个请求参数值;
二、@PathVariable绑定URI模板变量值;
三、@CookieValue绑定Cookie数据值
四、@RequestHeader 绑定请求头数据;
五、@ModelValue绑定参数到命令对象;
六、@SessionAttributes绑定命令对象到session;
七、@RequestBody绑定请求的内容区数据并能进行自动类型转换等。
八、@RequestPart 绑定“multipart/data”数据,除了能绑定@RequestParam 能作到的请求参数外,还能绑定上传的文件
等
@RequestParam (value="",required=false[默认true],defaultValue="zhang")
绑定单个参数 public void method(@RequestParam(value="username") String name){} --> ...htm?username=zzd
绑定多个参数 public void method(@RequestParam(value="role") String[] roles){} 或者
public void method(@RequestParam(value="role" ) List<String> roles) {} -->...htm?role=admin&role=test服务器
@RequestMapping(value="/users/{userId}/topics/{topicId}")
EG:public String test(
@PathVariable(value="userId") int userId,
@PathVariable(value="topicId") int topicId)
将url 中的{userId}、{topicId} 绑定到@PathVariable 标注的变量中
@CookieValue
public String test(@CookieValue(value="JSESSIONID", defaultValue="") String sessionId) session
@RequestHeader
public String test(
@RequestHeader("User-Agent") String userAgent,
@RequestHeader(value="Accept") String[] accepts)
六:
app
三:备注
<context:component-scan/> 扫描指定的包中的类上的注解,经常使用的注解有:ui
@Controller 声明Action组件
@Service 声明Service组件 @Service("myMovieLister")
@Repository 声明Dao组件
@Component 泛指组件, 当很差归类时.
@RequestMapping("/menu") 请求映射
@Resource 用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName")
@Autowired 用于注入,(srping提供的) 默认按类型装配
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype") 设定bean的做用域url