一:什么是SSj
Spring springMVC jpa 三大框架
二:spring xml的配置
需要添加 context tx
扫描需要:context 事务需要:tx
1.扫描dao层,扫描业务层
<!--扫描dao层-->
<context:component-scan base-package="cn.itsource.ssj.dao" />
<!--扫描业务层-->
<context:component-scan base-package="cn.itsource.ssj.service" />
2.配置jdbc.properties
<!--配置位置,使这里的配置能够找到我们配置的 -->
<context:property-placeholder location="classpath:jdbc.properties" />
jdbc.properties文件配置 注意:尽量在前面加一个jdbc.的前缀,避免与spring内部冲突
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///ssj
jdbc.username=root
jdbc.password=root
3.配置jdbc数据源
<!-- 配置一个dbcp的数据源 --> 这里的表达式:${} 引用我们前一步配置的数据
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
4.配置一个EntityManagerFactory 快捷键Alt+Insert JPA
<!-- 配置一个EntityManagerFactory 快捷键 alt+insert JPA -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!-- 配置数据源 这里的ref与第三步中的jdbc数据源的id值必须一致,因为我们需要注入dataSource对象从而获得 【连接池对象】 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描包(JPA的支持)配置后可以使用加注解的方式【生成表】 -->
<property name="packagesToScan" value="cn.itsource.ssj.domain" />
<!--
Adapter:适配器 -> 确定你要用哪一种实现来完成功能适配
咱们要集成JPA -> JPA是有很多种实现(不止一种)
HibernateJpaVendorAdapter:用的hibernate适配器
-->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!-- 方言 -->
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
<!-- 是否显示sql -->
<property name="showSql" value="true" />
<!--
建表策略 true:update false:什么都不做
-->
<property name="generateDdl" value="true" />
</bean>
</property>
</bean>
5.配置事务
<!-- 事务的代码(增强) alt+insert –> JPA -->
<!—这里的 transactionManager 是默认的名字,若要自定义名字则在支持事务注解的属性中配对修改—>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<!-- 支持事务的注解 这后面配置的这个名字必须和事务的 配置id值一致-->
<tx:annotation-driven transaction-manager="transactionManager" />
三:springMVC .xml中的配置
需要添加:context mvc
扫描包需要:context 静态资源放行需要:mvc 支持springmvc注解需要:mvc
1.扫描表现层
<!--扫描表现层-->
<context:component-scan base-package="cn.itsource.ssj.Controller"></context:component-scan>
2.支持springMVC注解
<mvc:annotation-driven/>
3.静态资源放行
<mvc:default-servlet-handler/>
4.视图解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀部分 -->
<property name="prefix" value="/WEB-INF/view/"></property>
<!-- 后缀部分 -->
<property name="suffix" value=".jsp"></property>
</bean>
4.文件上传
<!--文件上传解析 同时设置最多上传文件大小-->
<!-- <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<!—这里配置上传的文件大小的最大限制 -->
<value>${1024*1024*10}</value>
</property>
</bean>-->
四:web xml中的配置
1.Spring监听器的配置
Spring监听器会找到相应的配置文件 找到 对应的spring配置文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 准备一个Spring的监听器 用于监听spring配置文件 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.spring mvc 核心控制器的配置
<!--配置springMVC的核心控制器 DispatcherServlet-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置确定springMVC核心配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-mvc.xml</param-value>
</init-param>
<!--配置使springMVC随服务器的启动而启动-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<!-- 不能写死路劲,写死了核心控制器就只能接收到一个请求 这样跟符合resultful风格 -->
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.配置解决中文乱码问题
<!-- 配置【POST请求】编码过滤器
解决了,我们从前台接收到 中文的时候 出现乱码的问题
-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- 设置编码方式 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<!-- 强制编码 不管之前是什么状态都会强制编码-->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
4.过滤所有请求
<!--过滤所有的请求 另外需要在springMVC中配置静态资源放行-->
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>