spring 几点基础内容

一、 Spring配置
基于XML、注解、java类 三种方式。

基于XML
文件头部分<beans >:
(Schema格式)
一、指定命名空间的 名称
1,默认命名空间,没有空间名,用于bean的定义
2,xsi命名空间,用于为每个文档中命名空间指定相应的Schema样式文件,是标准组织定义的标准命名空间
3,各种自定义的命名空间
二、指定命名空间的 Schema文档样式文件的位置
4,相应命名空间的Schema文档文件
【没有p和xsi】?

bean部分<bean />:
<bean id="car" class="com.gome.xxx.Car"/>
id不能重复,可以用 getBean("car")获得容器中的bean
<bean name="bmw" class="com.gome.xxx.Car"/>
<bean name="bmw,audi" class="com.gome.xxx.Car"/>
name可以重复,也可以给一个bean定义多个name,而且可以使用任意字符,可以getBean("name"),重名的话,获取最后覆盖的那个bean

Spring注解

注解形式是相对于配置xml形式更方便的一种实现依赖注入的方式。

  • @Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
  • @Service 通常作用在业务层,目前该功能与 @Component 相同。
  • @Controller 通常作用在控制层,目前该功能与 @Component 相同。
  • @Repository 定义Dao层bean  
   *定义实体Bean,使用配置文件-属性注入或者构造方法注入 来完成。

例如:
@Component("userDao")
public class UserDao(){
}
,参数("userDao")可以省略,默认为name=首字母小写的类名,由于容器中的大部分bean都是单例的,所以通常不需要指定名称。

注入bean时,@Autowired,默认按类型匹配,且如果目标类是接口的实现类,则要注入接口。如果该接口下有多个实现类都在容器中,则使用@Autowired@Qualifier("name")按照名字来注入


另,@Resource是按照名称匹配,作用类似于@Autowired,可以加参数("name")



利用注解读取配置文件中的属性:

1,在xml中加入

<util:properties id="accountSecurityConfig" location="classpath:config/AccountSecurityToolsConfig.properties" />

2,在@Component标注的类中可以使用
@Value("#{accountSecurityConfig[tokenExpire]}")
 private Integer tokenExpire;

即可实现读取 AccountSecurityToolsConfig.properties中的属性tokenExpire的值,赋给Integer tokenExpire


指定控制器中对HTTP请求的处理方法的对应路径, @RequestMapping
一个控制器可以拥有多个对应不同请求路径的处理方法。请求的参数会根据参数名称默认契约自动绑定到响应方法的入参中。
 @RequestMapping(value="/loginCheck.heml")
    public ModelAndView loginCheck(HttpServletRequest request,LoginCommand loginCommand){}
相应请求的方法可以返回一个ModelAndView ,或直接返回一个字符串,SpringMVC会解析之并转目标相应界面。
ModelAndView对象包括了视图信息和视图渲染所需的模型数据信息,代表一个视图。


Bean的作用域
类别
说明
singleton
单实例,整个IOC容器中只有一个Bean实例
prototype
每次从容器中调用Bean时,都会返回一个新的实例
request
每次HTTP请求都会创建一个新的Bean
session
同一个HTTP Session共享一个Bean
globalSession
同一个全局Session共享一个Bean
    后三种只适用于WebApplicationContext环境











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值