創建一個簡單的SSM框架(1)


  今天來簡單學習一下如何創建一個SSM框架

  要用到的工具有Eclipse、Maven、JDK、MySQL、Spring Boot。這些工具的配置網上的教程很多,這里不再累述。提幾個要注意的點,Eclipse中Maven的配置要注意,MySQL的安裝要注意字節碼的設置,Spring Boot的環境變量的配置,Maven環境變量的配置一定要在JDK配置的后面,就是MVN_HOME一定要在JAVA_HOME后面,要不然,重啟電腦環境配置會出問題。Maven的工廠配置。

  上面的工具說完了,下面就開始說一說具體的實現。

  首先在cmd中打開workspace(可以是任意文件夾),輸入命令:spring init -g=com.psq -a=ssmtrain -d=web,mysql,mybatis ssmtrain 其中-g代表的是groupId,-a代表的是artifactI,-d代表的是項目依賴。其中還可以添加-p代表的打包方式,這里我沒有添加。

  接下來,進入到項目根目錄中,就是在ssm-train文件夾下,執行命令:mvn-install 會出現下面錯誤

這是正常的,因為沒有配置mysql的連接配置文件。在ssm-train\src\main\resources文件夾下面配置application.properties,打開配置如下代碼

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=root

配置成功后,再次執行mvn-install,會出現下面的界面,表示成功。

  這里可以在mvn-install前面修改配置文件,我這里只是為了演示錯誤,如果項目發生了錯誤且不知怎么修復,執行mvn-clean可以清除依賴,再執行以上步驟。

  項目創建完畢,使用Eclipse打開此項目,出現下面情況即為正確。

  下面開始一些簡單的配置。首先配置包,項目中有很多的包,下面的只是簡單列舉,看自己的情況而定。mapper包:主要是執行SQL語句的xml文件,bean包:實體類對象,dao包:提供接口,mapper就是注入到這個接口中, service包:提供服務的主要類,業務邏輯在這里, web.controller包: 接口類,主要是wen網頁的接口,config包:主要是一些配置文件。包創建完畢,項目如下所示。

 

  下面就開始編寫,這里只是簡單的編寫增刪改查,下面開始編寫。

  先從下面往上講,本次還是使用最基礎的,沒有用到一些工具,工具后面一個博客會使用。

  先創建實體類對象,就是在bean包中創建學生類,代碼比較簡單,我這里不再粘貼,要注意的是get和set方法,最好還要有序列化對象,方便對象在網絡中傳輸。類的屬性名也要和表中的字段名一樣。比如:id字段在Stu類中的名字就是id,注意大小寫。

  在創建mapper文件夾中的xml文件,主要是將要執行的SQL語句放到xml文件中,這里粘貼代碼。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.psq.ssmtrain.dao.Stu">
	<!-- 查詢所有的信息 -->
	<select id="findAll" resultType="com.psq.ssmtrain.bean.Stu">
		select * from stu
	</select>
</mapper>

   在創建dao包中的StuMapper.java,注意這個類是個接口,為什么是接口?因為框架學習的還是淺,這里大概是因為設計模式的原因。代碼如下:

package com.psq.ssmtrain.dao;

import java.util.List;

import com.psq.ssmtrain.bean.Stu;

public interface StuMapper {
	
	//查詢所有的信息,要注意這里的方法名要和StuMapper.xml文件中的select的id一樣。
	List<Stu> findAll();

}

   service包中是業務邏輯層,主要是項目業務的邏輯。創建一個接口和一個類:IStuService接口,StuServiceImpl實現類。代碼如下:

  IStuService接口代碼:

package com.psq.ssmtrain.service;

import java.util.List;

import com.psq.ssmtrain.bean.Stu;

public interface IStuService {
	
	List<Stu> findall() throws Exception;
}

   StuServiceImpl實現類代碼:

package com.psq.ssmtrain.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.psq.ssmtrain.bean.Stu;
import com.psq.ssmtrain.dao.StuMapper;
import com.psq.ssmtrain.service.IStuService;

@Service
public class StuServiceImpl implements IStuService {

	@Autowired
	private StuMapper stuMapper;
	
	@Override
	public List<Stu> findall() {
		
		return stuMapper.findAll();
	}

}

   接下來是配置contraller包中的接口,這個是網頁調用的接口,不是java中的接口。代碼如下:

package com.psq.ssmtrain.web.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.psq.ssmtrain.bean.Stu;
import com.psq.ssmtrain.service.IStuService;

@RestController
@RequestMapping("/stu")
public class StuContraller {
	
	@Autowired
	private IStuService stuService;
	@GetMapping("findall")
	public List<Stu> findall() {
		
		List<Stu> list=null;
		try{
			list=stuService.findall();
		}catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
}

   接下來就是一些配置問題了,為了讓注入順利進行,需要在springBoot的啟動類上,加個注解:@MapperScan("持久層路徑"),這樣就會順利注入了。在DemoApplication.java文件中加代碼:

package com.psq.ssmtrain;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.psq.ssmtrain.dao")
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

   另外還要在application.properties文件加上代碼,配置映射文件(mapper文件夾下面的xml文件)。代碼如下:

mybatis.mapper-locations= classpath:/mapper/**/*.xml

   完成,直接打開瀏覽器,地址為http://localhost:8080/stu/findall  (這個是我的地址,如果照上面打的話一樣,修改的話看一下Controller類)。

  以上就完成了基礎的查詢,結果如下:

  整個項目沒有前端,所以數據的顯示會以json的形式顯示,下面談談遇到的問題,本來是想直接加上工具的,但是后來忘了一些知識點,所以這次沒有加上工具(熱部署,swagger-ui,mybatis generator),后面的博客會加上,中間還是遇到了問題,最開始時注入的時候出現錯誤,再后來發現是DemoApplication.java文件中沒有添加注解(這個注解也可以用xml文檔替代),添加后就可以正常運行了,還是不理解原理,學習框架一定要理解原理。中間遇到的一些小錯誤這里不再提了,都是小問題,我解決后都給忘了,也不再費腦子去想。

  同時,這里給自己提一個規范,編碼的規范,多看看阿里編碼規范手冊,大家編程的時候一定要注意規范。

  項目放到github上面吧,大家也可以看看代碼,我放上去的是整合工具后的源碼,估計下一篇博客寫完就放上去了。地址在下一篇博客。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM