【SSM】环境搭建:整合Spring + SpringMVC + MyBatis + JSON + RESTFUL + 其他(处理音频文件上传)

极环境搭建:Spring + SpringMVC + MyBatis + JSON + RESTFUL风格 + 其他

(1)导入相关jar以及依赖

  略,,,

(2)配置文件的配置:

① web.xml配置:

  <!-- springMVC核心控制器 -->
  <servlet>
  	<servlet-name>SpringMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- 指定springMVC配置文件路径 -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:/mvc.xml</param-value>
  	</init-param>
  	<!-- 设置在tomcat启动创建控制器 -->
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>SpringMVC</servlet-name>
  	<!-- 指定所有的springMVC控制器访问以.do结尾 -->
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <!-- 编码设置,spring自带的过滤器 -->
  <filter>
  	<filter-name>encodingFilter</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>forceResponseEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>*</url-pattern>
  </filter-mapping>
  <!-- spring工厂初始化监听器 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 标明加载spring工厂的配置文件路径 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath:/applicationContext.xml</param-value>
  </context-param>

② mvc.xml

        <!-- 扫描注解:控制器层 -->
	<context:component-scan base-package="com. controller"/>
	<!—访问路径映射注解、响应转化json替换-->
	<mvc:annotation-driven>
		<!-- 转换json格式 -->
		<mvc:message-converters>
			<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>application/json;charset=UTF-8</value>
						</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>
	<!—静态资源处理-->
	<mvc:default-servlet-handler/>
或者:
			<mvc:resources location="/js/" mapping="/js/**"/>
			<mvc:resources location="/img/" mapping="/img/**"/>
		<mvc:resources location="/css/" mapping="/css/**"/>
	<!-- 视图解析器:前缀、后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"/>
		<property name="suffix" value=".jsp"/>
	</bean>
	<!-- 上传文件配置:id固定 -->
	<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver">
		<property name="maxUploadSize" value="100000000"></property>
	</bean>

③ applicationContext.xml/beans.xml/spring.xml配置:

      <!-- 扫描注解 -->
	<context:component-scan base-package="com ">
	<!—不扫描controller-->
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan
	<!-- 引入小配置文件 -->
		<context:property-placeholder location="classpath:db.properties"/>
	<!-- 创建数据源 -->
	<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
		<property name="driverClassName" value="${mysql.driver}"/>
		<property name="url" value="${mysql.url}"/>
		<property name="username" value="${mysql.username}"/>
		<property name="password" value="${mysql.password}"/>
	</bean>
	<!-- 创建sqlSessionFactory -->
	<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="mapperLocations" value="classpath:com /mapper/*Mapper.xml"/>
		<property name="typeAliasesPackage" value="com.entity"/>
	</bean>
	<!-- 创建dao -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
		<property name="basePackage" value="com.dao"/>
	</bean>
	<!-- 声明式事务控制 -->
	<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="dataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	<!-- 事务控制注解生效 -->
		<tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>

④ 小配置文件:db.properties

mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/cmfz
mysql.username=root
mysql.password=root
…

⑤ DaoMapper.xml

<mapper namespace="com.dao.UserDao">
	<select id="getUser" resultType="User">
		select * from admin whiere id = #{id}
	</select>
</mapper>

⑥ Controller

@Controller
@RequestMapping("/user")
public class UserController {
	@Autowired
	@Qualifier(“userServiceImpl”)
	private UserService userService;

	@RequestMapping("login")
	public String login(){
		return "index";		//跳转到/index.jsp,在配置中配置了前缀和后缀
	}
	@RequestMapping("/getUser/{userId}")		//REST风格接受参数和响应JSON对象
	public @ResponseBody User getUser(@PathVariable(userId) String id){
		return userService.getUser(id)
	}
	/*文件上传时的代码:
		try {
			String realPath = session.getServletContext().getRealPath("/upload/img");
			File file = new File(realPath);
			if(!file.exists()){
				file.mkdirs();
			}
			String originalFilename = fileName.getOriginalFilename();
			String name = new Date().getTime()+"_"+originalFilename;
			fileName.transferTo(new File(realPath,name));
			map.put("mess", "上传成功");
		} catch (Exception e) {
			e.printStackTrace();
			map.put("mess", "上传失败");
		}
		//音频上传---------------------------------------------
            (1)导入jar:jaudiotagger-2.0.3.jar
            (2)代码处理:
		  File audioFile = new File(filePath); 		//通过音频路径读取
		  audioFile.getSize();//获取大小,单位字节(B),除以1024为KB
                  AudioFile read = AudioFileIO.read(audioFile);  	
                  AudioHeader audioHeader = read.getAudioHeader();
                  audioHeader.getTrackLength();  			//获取时长,单位为秒(s)
		  //音频上传---------------------------------------------
			    页面请求下载时可用window.location
	      */

      }

⑦ service实现类:

@Service
@Transactional//事务的管理
public class UserServiceImpl implements UserService{
	@Autowired
	private UserDao userDao;
	@Override
	public User getUser() {
		User user = userDao.getUser();
		return user;
	}
}
原文地址:https://www.cnblogs.com/jwnming/p/13639017.html