基於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會整合為樹形表的方式如下:
其中不合理處望指出,編程小白。