基于SSM的轮播图后台接口
基于SSM的轮播图后台接口
磕磕绊绊的算是写出来一个基于SSM的轮播图接口。在这大致总结一下用到的思想以及过程:
总结一下几点:
1.在spring.xml配置文件中配置视图解析器
2.Spring MVC 常用注解
3.激活Tomcat的defaultServlet来处理静态文件
4.使用JNDI数据源
其他未提到的在谈。
web.xml文件配置:
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定spring文件读取位置 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/classes/spring.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
上述代码中,指定spring文件读取位置并非项目中spring.xml的位置,打开方式:
Tomcat文件夹下→webapps→“自己的项目名称”→WEB-INF→classes→spring.xml 其中<param-value>标签内路径只需要填写WEB-INF之后便可。
spring.xml文件配置:
<!-- 扫描包下文件后将其有注解的类注册为bean格式 --> <context:component-scan base-package="src.peach.*"></context:component-scan> <!-- 数据源 --> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/mysql"></property> </bean> <!-- sessionfactory --> <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- ref:用来引用另一个bean --> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:config.xml"></property> <property name="mapperLocations" value="classpath:UserMapper.xml"></property> </bean> <!-- 根据dao层配置对象 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="src.peach.Dao"></property> <property name="sqlSessionFactory" ref="sessionFactory"></property> </bean> <!-- 添加静态资源的访问 --> <mvc:annotation-driven></mvc:annotation-driven> <mvc:default-servlet-handler/> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <!-- 前缀 --> <property name="prefix" value="/"></property> <!-- 后缀 --> <property name="suffix" value=".jsp"></property> </bean>
Mapper.xml文件配置;
<!-- 映射在dao层 --> <mapper namespace="src.peach.Dao.ShangXinDao"> <!-- id值要和dao借口中的方法名相同 --> <select id="ccplist" resultType="src.peach.Entity.cyclePic"> select * from cyclePic </select> </mapper>
java bean在这里不过多赘述,在进行封装的时候一定谨慎和数据库中列名一一对应后不要忘记提供set和get方法
Dao层接口:
public interface ShangXinDao { //用集合存放值 public List<cyclePic> ccplist(cyclePic ccp); }
Service层接口和Dao一样,在这里我同样用的list集合。
接下来就是Conteoller(控制层)代码的编写,需要注意的是,和安卓开发人员进行交互的时候一定要保证代码路径一致:
Conteoller:
@Controller @RequestMapping("/shangxinitem") public class UserConterller { //用来判断取值是否成功 Boolean success; @Autowired private ShangXinService sxs; //轮播图 @RequestMapping("/cyclePic") @ResponseBody public Map <Object,Object> ccp(){ cyclePic ccp=new cyclePic(); List<cyclePic> ccpXlist=sxs.ccplist(ccp); success = ccpXlist!=null?true:false; Map <Object,Object>map=new HashMap<Object, Object>(); map.put("success", success); map.put("result",ccpXlist); return map; } }
以上就配置好一个简单的轮播图后台接口,但需要注意的是JNDI的配置,要在tomcat服务器后台添加相对应的数据源:
文件路径:tomcat→conf→context.xml
在<Context/>标签内配置数据源如下:
<Resource name="jdbc/mysql" scope="Shareable" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" url="jdbc:mysql://localhost:3306/peach" driverClassName ="com.mysql.jdbc.Driver" username="root" password="root" /> //url路径要和项目名称对应 //name要和spring.xml中配置的数据源中<peoperty>中的value后缀相同
最后在同安卓进行交互的时候,需要在同一个局域网下,将路径提供给安卓即可,下面是服务器端显示出来的后台,以json数组的方式呈现,效果图如下:
这样看起来只是一串数组,如果安装Json-Handle会整合为树形表的方式如下:
其中不合理处望指出,编程小白。