第一个spring mvc应用:
在spring mvc应用中,除了需要模型层,视图层,控制层之外。
还需要springmvc-servlet.propertise.xml文件配置springmvc框架的具体工作行为。
此外还需要创建整个web应用的配置文件web.xml
在spring mvc中只要一个类被@Controller注解标识,他就会被标识为springmvc的控制类,此类是具体处理事务的类,而DispatcherServlet类是总管。
在java web应用中 WEB-INF目录下的文件不能被直接访问,可以使用跳转的方法进行方法。在springmvc中,可以使用InternalResourceViewResolver类进行返回视图前缀和后缀的配置。
在spring mvc框架中,使用Model接口标识应用程序需要处理或展示的模型数据,模型数据在Model中以键/值的方式保存。
springmvc框架以及整个spring框架之所以这么强大,得益于bean组件,这里的bean组件不是传统的javabean,而是能提供特定服务的java类。
在web.xml文件中的配置:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern> //代表所有的请求都会进入到DispatcherServlet类中。
</servlet-mapping>
springmvc框架的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定sprinmvc框架在javaweb应用初始化阶段扫描的包 -->
<context:component-scan base-package="a"/>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
关于springmvc配置文件的名称:
springmvc
org.springframework.web.servlet.DispatcherServlet
1
contextConfigLocation
classpath:test.xml
springmvc
/
配置文件的名称通常是<servlet-name>springmvc</servlet-name>值加上 -servlet.xml
也可以自己设置配置文件。
静态资源:
当在web.xml文件中配置 DispatcherServlet为 / 后,所有的请求都会进入DispatcherServlet中,若请求一些静态文件则会报错。
方法一:
可以在springmvc的配置文件中配置mvc:default-servlet-handler/,此配置会生成一个DefaultServletHttpRequestHandler类的对象,
在DispatcherServlet对象之前拦截请求,如果请求的是静态文件就把请求交给servlet容器处理,否则转发给DispatcherServlet。
方法二:此方法没有成功
对静态文件资源进行映射:
<mvc:resources mapping="/resource/**" location="/static/"/>
代表以/resource开头的URL和web应用的/static文件夹进行映射
依赖注入和控制反转:
对于未使用任何第三方框架的独立的java web应用,程序本身需要处理各种对象的生命周期,如对象何时创建,何时销毁以及对象之间的相互关联和依赖。
在在spring中,bean类会被注册到spring框架中,bean的实例何时创建,销毁由框架控制,程序员只要关系业务的依赖关系就可以了。
spring框架中规定的bean的5种存在范围:scope
single:单例,整个应用程序中,sping框架只创建一个bean实例。默认情况。
prototype:原型范围,每次程序访问bean时都会创建一个新的实例。
request:每个http请求创建一个实例。
session:每个会话创建一个实例。
application:web应用范围,整个web应用,spring会创建一个实例。
signal和prototype适用于所有的程序。
request,session,application只使用与web程序
向spring框架中注册bean组件有3种方式:
1,使用注解:
@Controller
@Service
@Respository
2,在spring框架或spring分支框架的配置文件中。
3,在程序中使用@Bean注解注册bean组件
@Configuration
public class MyConfig {
@Bean(“demoASpring”)
@Scope(“application”)
public DemoASpring create(){
return new DemoASpring();
}
}