1. 程式人生 > >建立一個SpringBoot + springmvc + hibernateJPA + MyBatis的專案

建立一個SpringBoot + springmvc + hibernateJPA + MyBatis的專案

1.使用Spring Tool Suite 建立一個Spring Starter Project工程

2.修改pom.xml檔案:

 <pre class="html" name="code"><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.springframework</groupId>
	<artifactId>backendmanage</artifactId>
	<version>0.1.0</version>
	<packaging>war</packaging>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.1.9.RELEASE</version>
	</parent>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>3.0.1</version><!--$NO-MVN-MAN-VER$-->
			
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.6</version>
		
		</dependency>
		<dependency>
			<groupId>com.microsoft.sqlserver</groupId>
			<artifactId>sqljdbc4</artifactId>
			<version>4.0</version>
			
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>org.scala-lang</groupId>
			<artifactId>scala-library</artifactId>
			<version>2.10.4</version>
		</dependency>
		<dependency>
		  <groupId>org.mybatis</groupId>
		  <artifactId>mybatis</artifactId>
		  <version>3.2.7</version>
		</dependency>
		<dependency>
		  <groupId>org.mybatis</groupId>
		  <artifactId>mybatis-spring</artifactId>
		  <version>1.1.0</version>
		</dependency>
	</dependencies>

	<properties>
		<start-class>com.sonymobile.sonyselect.music.Application</start-class>
	</properties>

	<build>
		<finalName>web-music</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>spring-milestone</id>
			<url>https://repo.spring.io/libs-release</url>
		</repository>

		<repository>
			<id>org.jboss.repository.releases</id>
			<name>JBoss Maven Release Repository</name>
			<url>https://repository.jboss.org/nexus/content/repositories/releases</url>
		</repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>spring-milestone</id>
			<url>https://repo.spring.io/libs-release</url>
		</pluginRepository>
	</pluginRepositories>

</project>

3.執行maven install, maven build

4.建立Application.java

/**
 * Copyright (c) 2014 Sony Mobile Communications Inc.
 * All rights, including trade secret rights, reserved.
 */
package com.sonychina.backend;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@ComponentScan
@EnableAutoConfiguration
@EnableJpaRepositories(basePackages = "com.sonychina.backend.repository")
public class Application extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication app = new SpringApplication(Application.class);
		app.run(args);
		//SpringApplication.run(Application.class, args);
	}
	
	@Override
    	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        		return application.sources(Application.class);
    	}
}

5.配置檔案

application.properties

spring.profiles.active=dev

application-dev.properties 

spring.datasource.url=jdbc:sqlserver://SEMCW14246:1433;DatabaseName=PlayNow_New
spring.datasource.username=sa
spring.datasource.password=hello123
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
# spring.jpa.hibernate.ddl-auto=update
spring.datasource.test-on-borrow=true
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1;
spring.jpa.hibernate.ddl-auto=none
spring.jpa.generate-ddl=true
spring.jpa.properties.hibernate.show_sql=true
spring.thymeleaf.cache=false

6.建立工具類

GenericsUtils.java

package com.test.backend.utility;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * 一個處理泛型繼承類的泛型引數的工具類
 * @since 2015.7.14
 *
 */
public class GenericsUtils {
	/**   
	      * 通過反射,獲得定義Class時宣告的父類的範型引數的型別.   
	      * 如public BookManager extends GenricManager<Book>   
	      *   
	      * @param clazz The class to introspect   
	      * @return the first generic declaration, or <code>Object.class</code> if cannot be determined   
	      */  
	     public static Class<?> getActualReflectArgumentClass(Class<?> clazz) {  
	         return getActualReflectArgumentClass(clazz, 0);  
	     }  
	   
	     /**   
	      * 通過反射,獲得定義Class時宣告的父類的範型引數的型別.   
	      * 如public BookManager extends GenricManager<Book>   
	      *   
	      * @param clazz clazz The class to introspect   
	      * @param index the Index of the generic ddeclaration,start from 0.   
	      */  
	     public static Class<?> getActualReflectArgumentClass(Class<?> clazz, int index) throws IndexOutOfBoundsException {  
	   
	         Type genType = clazz.getGenericSuperclass();  
	         System.out.println("--------------Generic Super class type:" + genType.toString());
	   
	         if (!(genType instanceof ParameterizedType)) { 
	        	 if(index == 1){
	        		 return genType.getClass();
	        	 }
	        	 
	        	 return getActualReflectArgumentClass(genType.getClass(),index + 1);
	         }  
	   
	         Type[] params = ((ParameterizedType) genType).getActualTypeArguments();  
	   
	         if (index >= params.length || index < 0) {  
	             return Object.class;  
	         }  
	         if (!(params[index] instanceof Class)) {  
	             return Object.class;  
	         }  
	         return (Class<?>) params[index];  
	     }  

}

MapResultHandler.java

package com.test.backend.utility;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.ResultContext;
import org.apache.ibatis.session.ResultHandler;

/**
 * 一個處理MyBatis的sql查詢返回結果型別的handler類
 * @since 2015.7.14
 *
 */
public class MapResultHandler implements ResultHandler{
	private final List<Map<String, Object>> mappedResults = new ArrayList<Map<String, Object>>(); 
	private Long count = new Long(0);
	           
    @Override  
    public void handleResult(ResultContext context) { 
    	try{
    		@SuppressWarnings("unchecked")
			Map<String, Object> map = (Map<String, Object>) context.getResultObject();   
    		mappedResults.add(map);
    	} catch(Exception e){
    		count = Long.valueOf(context.getResultObject().toString());
    	}
    }   
       
    public List<Map<String, Object>> getMappedResults() {   
        return mappedResults;   
    }   

    public Long getCount(){
    	return count;
    }
}


MyBatisUtil.java

package com.test.backend.utility;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

/**
 * MyBatis SqlSession獲取工具類,提供SqlSession生成,是一個安全的單例類
 * @since 2015.7.13
 *
 */
public class MyBatisUtil {
		
	private SqlSessionFactory sqlSessionFactory;
	private static MyBatisUtil myBatisUtil;
	
	private MyBatisUtil(DataSource dataSource){
		
		System.out.println("--------------------------myBatis initialize-----------------------");
		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
		sqlSessionFactoryBean.setDataSource(dataSource); 
		PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();           
		try {
			//System.out.println(this.getClass().getResource("/MyBatisMapper.xml").toURI().toString());
			sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/MyBatisMapper.xml"));
			//System.out.println(sqlSessionFactoryBean.getObject() + ":" + dataSource);
			sqlSessionFactory = sqlSessionFactoryBean.getObject();
		} catch (Exception e) {
			throw new RuntimeException("MyBatis SqlSessionFactory init Error:" + e.getMessage());
		}
	}
	
	public static MyBatisUtil getInstance(DataSource dataSource){
		synchronized (dataSource) {
			if(myBatisUtil == null){
				myBatisUtil = new MyBatisUtil(dataSource);
			}
		}
		return myBatisUtil;
	}
	
	public SqlSession getSession() throws Exception{		
		return sqlSessionFactory.openSession(); 
	}
}

7.配置MyBatis的mapper檔案,並建立MyBatisDao基類

MyBatisMapper.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.sonychina.statistic" >
  <!-- <sql id="Base_Column_List" >id, sonyselectid</sql>
  <select id="selectUserById" resultMap="com.sonychina.backend.entity.test.User" parameterType="java.lang.String" >
    select <include refid="Base_Column_List" />
    from t_user
    where user_id = #{userId,jdbcType=CHAR}
  </select> -->
  <select id="getUserCount" resultType="java.lang.Long">
  	select count(1) from pn_userinfo
  </select>
  <select id="getUser" resultType="com.sonychina.backend.entity.test.User" parameterType="java.lang.Integer" >
    select id, sonyselectid
      from pn_userinfo
     where id = #{id}
  </select>
  
  <select id="getUserMapList" resultType="java.util.HashMap">
    select id, sonyselectid
      from pn_userinfo
  </select>
  
  <insert id="saveUser" parameterType="com.sonychina.backend.entity.test.User" useGeneratedKeys="true"
    keyProperty="id">
  	insert into pn_userinfo (sonyselectid) values(#{sonySelectId})
  </insert>
  <!-- 
  <insert id="insertSelective" parameterType="me.gacl.domain.User" >
    insert into t_user
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="userId != null" >
        user_id,
      </if>
      <if test="userName != null" >
        user_name,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="userId != null" >
        #{userId,jdbcType=CHAR},
      </if>
      <if test="userName != null" >
        #{userName,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
   -->
   <cache eviction="LRU" flushInterval="86400000" size="256" readOnly="false"/>
</mapper>


MyBatisBaseDao

package com.test.backend.dao.base;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSession;

import com.sonychina.backend.global.Constants;
import com.sonychina.backend.utility.GenericsUtils;
import com.sonychina.backend.utility.MapResultHandler;
import com.sonychina.backend.utility.MyBatisUtil;

public class MyBatisBaseDao<T>{
    private Class<T> type;
    private SqlSession session;
    
    @SuppressWarnings("unchecked")
	public MyBatisBaseDao(DataSource dataSource){
		type = (Class<T>) GenericsUtils.getActualReflectArgumentClass(this.getClass());
		System.out.println("------------- BaseMybatisDao initialize--------------------------");
		System.out.println("------------- T:" + type.toString());
		try {
			MyBatisUtil myBatisUtil = MyBatisUtil.getInstance(dataSource);
			session = myBatisUtil.getSession();
		} catch (Exception e) {
			e.printStackTrace();
		}
    }
    
    
    private String getMethodPath(String methodType){
        return getMethodPath(methodType, "");
    }
    
    private String getMethodPath(String methodType, String methodSuffix){
        return Constants.MYBATIS_MAPPER_PRIX + methodType + type.getSimpleName() + methodSuffix;
    }
    
    public void save(T obj) {
        session.insert(getMethodPath("save"), obj);
    }

    public void delete(T obj) {
        session.delete(getMethodPath("delete"), obj);
    }

    public void update(T obj) {
        session.update(getMethodPath("update"), obj);
        //HashMap<String,Object> map = null;
    }

    public T get(Integer id) {
        return session.selectOne(getMethodPath("get"),id);
    }
    
    public List<T> getList(T entity){
    	return session.selectList(getMethodPath("get", "List"), entity);
    }
    
    public List<Map<String, Object>> getMapList(HashMap<String, Object> map){
    	MapResultHandler mh = new MapResultHandler();
    	session.select(getMethodPath("get", "MapList"), map, mh);
    	return mh.getMappedResults();
    }
    
    public List<Map<String, Object>> getMapList(T entity){
    	MapResultHandler mh = new MapResultHandler();
    	session.select(getMethodPath("get", "MapList"), entity, mh);
    	return mh.getMappedResults();
    }

    public Long getCount(){
    	MapResultHandler mh = new MapResultHandler();
    	session.select(getMethodPath("get", "Count"), mh);
    	return mh.getCount();
    }
}


一個簡單的UserDaoImpl

/**
 * Copyright (c) 2014 Communications Inc.
 * All rights, including trade secret rights, reserved.
 */
package com.test.backend.dao.test;

import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

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

import com.sonychina.backend.dao.base.MyBatisBaseDao;
import com.sonychina.backend.entity.test.User;

@Component
public class UserDaoImpl<T extends com.sonychina.backend.entity.test.User> extends MyBatisBaseDao<User> implements UserDao {
	
	@Autowired
	public UserDaoImpl(DataSource dataSource) {
		super(dataSource);
	}

	@Override
	public User get(Integer id) {
		System.out.println("-----------getUserId:" + id + "[dao start]");
		User user = null;
		try{
			user = super.get(id);
		}catch(Exception e){
			e.printStackTrace();
		}
		return user;
	}

	@Override
	public void save(User user) {
		// TODO Auto-generated method stub
		super.save(user);
	}

	@Override
	public void delete(com.sonychina.backend.entity.test.User obj) {
		// TODO Auto-generated method stub
		
	}
	
	public Long getCount(){
		return super.getCount();
	}
	
	public List<Map<String, Object>> getMapList(){
		return super.getMapList(new User());
	}
}


8.使用JPA

BannerRepository.java

package com.test.backend.repository.test;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import com.sonychina.backend.entity.test.Banner;



public interface BannerRepository extends JpaRepository<Banner, Long> {
	
	@Modifying
	@Query("update Banner m set m.name=?1 where m.id=?2")
	public void update(String bannerName, Long id);

}

BannerServiceImpl.java

package com.test.backend.service.testHibernate;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.sonychina.backend.entity.test.Banner;
import com.sonychina.backend.repository.test.BannerRepository;

@Service
public class BannerServiceImpl implements BannerService {
	
	@Resource
	private BannerRepository bannerRepository;
	
	@Override
	public void saveBanner(Banner banner) {
		bannerRepository.save(banner);
	}

	@Override
	public Banner findBannerById(Long id) {
		return bannerRepository.getOne(id);
	}

	@Override
	public void updateBanner(String bannerName, Long id) {
		bannerRepository.update(bannerName, id);
	}

}


9.自定義SpringMVC的攔截器,但不破壞Spring Boot的預設載入和封裝

GlobalWebConfiguration.java

package com.test.backend.global;

import java.util.List;

import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.sonychina.backend.interceptor.TestUrlInterceptor;

@Configuration
public class GlobalWebConfiguration extends WebMvcConfigurerAdapter {
	
	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void addFormatters(FormatterRegistry registry) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation returns {@code null}
	 */
	@Override
	public Validator getValidator() {
		return null;
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void configurePathMatch(PathMatchConfigurer configurer) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
		
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public MessageCodesResolver getMessageCodesResolver() {
		return null;
	}
	
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(new TestUrlInterceptor());
	}
	
	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void addViewControllers(ViewControllerRegistry registry) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
	}

	/**
	 * {@inheritDoc}
	 * <p>This implementation is empty.
	 */
	@Override
	public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
	}
	
}


TestUrlInterceptor.java

package com.test.backend.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class TestUrlInterceptor implements HandlerInterceptor {
	
	public TestUrlInterceptor(){
		System.out.println("--------------- TestUrlInterceptor initialize -------------");
	}
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
		throws Exception {
		
		if(request.getRequestURI().equals("/error")){
			System.out.println("------------------error path");
			//request.getRequestDispatcher("/invalidPage");
			response.sendRedirect("/invalidPage");
		}
		System.out.println("--------------TestUrlInterceptor work-----------------" + request.getRequestURI());
		
		return true;
	}
	
	/**
	 * This implementation is empty.
	 */
	@Override
	public void postHandle(
			HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
			throws Exception {
		
		if(modelAndView == null){
			modelAndView = new ModelAndView("error");
			throw new Exception("not find this path!!!!!");
		}
		System.out.println("-------------- TestUrlInterceptor post url -----------------" + modelAndView.getViewName());
	}
	
	/**
	 * This implementation is empty.
	 */
	@Override
	public void afterCompletion(
			HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		if(ex != null){
			System.out.println("-------------- TestUrlInterceptor completion -----------------" + ex.getMessage());
		}
	}
}


ok,到此打住,以上內容僅供參考。

相關推薦

建立一個SpringBoot + springmvc + hibernateJPA + MyBatis專案

1.使用Spring Tool Suite 建立一個Spring Starter Project工程 2.修改pom.xml檔案:  <pre class="html" name="code"><?xml version="1.0" encoding="U

idea工具的使用2(以建立一個SpringBoot+MyBatis專案舉例)

點選next,出現下圖:選擇你這個專案所需的模組依賴,我要建立的這個專案這裡需要Web中的Web模組的依賴;還需要SQL中的MySQL和MyBaties的依賴。點選next之後,出現下圖:一般來說,下圖中的專案名Project name和專案存放路徑Project location都是會根據

SpringBoot】手把手使用IDEA快速建立一個SpringBoot專案

微信公眾號: 關注可獲得更多幹貨。問題或建議,請公眾號留言; 關注小編微信公眾號獲取更多資源 手把手使用IDEA快速建立一個SpringBoot專案 目錄 1.New Project

初學springbootspringMVCMybatis專案--學習筆記

1.建立sts專案 建立步驟連結:https://blog.csdn.net/he90227/article/details/53308222 (我在建立專案時,選擇了mysql,但是初始測試時,未配置資料庫連結,專案啟動報錯:Failed to configu

SpringBoot教程(一)建立一個SpringBoot專案

構建簡單的專案 通常微服務都是由一組專案構建而成的一套服務架構,所以為了確保版本的一致性,通常都會用一個父工程來管理jar依賴版本,首先我們建立一個pom作為父工程 構建工程 在父工程下引入springboot依賴包 <parent> <

使用 IntelliJ IDEA 建立一個SpringBoot專案

1. 開啟idea,點選建立新專案,選擇Spring Initializr 2. 點選next,填寫Group和Artifact 3. 選擇Web,再選擇Web複選框 4. 填寫Project name,點選finish 5. 開啟專案目錄,刪除以下資

idea建立一個springboot專案demo詳細教程

1:在idea工作空間new一個module 2:設定自帶的tomcat的埠號,不設定的話預設8080 3:專案的分層需要建立到跟啟動類同級目錄下如圖 4:

快速建立一個springboot專案

  本文主要介紹使用spring官方網站快速生成springboot腳手架 1.開啟網站  https://start.spring.io 2.填寫專案資訊以及maven依賴(新增web,devtools依賴即可) 3.解壓生成的zip檔案,然後在id

idea中建立一個spring springMVC miniui框架的Java web專案的經過

最近學習miniui,發現網上可查的資料太少,基本只有官方api文件,在此,記錄下最近學習的部分內容。一、安裝部署專案。    本人是在idea中進行部署的,但在此之前,具體是將網上官方的示例下載下來,匯入MyEclipse文件中首次進行學習,但是第一次將專案按照“現在已經存

一個springboot+jpa+oracle+maven專案

大概花了一週的時間完成了第一個springboot專案的搭建,使用的工具是Eclipse,遇到不少問題,這裡強烈推薦《Spring實戰》這本書,有些問題在網上搜了半天但是都不能解決問題,後來都是在這本書中找到解決方法的。 專案結構: pom.xml檔案 <

## **如何建立一個最簡單的struts2專案

1.建立web專案並匯入struts2相關jar *jar包可以去官網下載 2. web.xml中配置struts2的核心過濾器 核心過濾器:StrutsPrepareAndExecuteFilter 配置核心過濾器: 3.建立action類 4.在str

一.寫一個最基本的mybatis專案,往資料庫中儲存資訊

1.       匯入相關的包,其中mybatis-3.2.7.jar和junit-4.9.jar分別是框架包和測試包,其餘的包都是mybatis包依賴的包 2.       建立資料庫,建立表 3.       建立實體類 4.定

springMVC整合mybatis 專案遇到問題總結

1、在spring裡面做 AOP 的時候,切點的寫法上,*號後面要有個空格,如下語句<!-- 配置 AOP --> <aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execut

MVC學習筆記(一) 建立一個屬於自己的MVC專案

學習MVC兩個來月了,終於決定最個能讓自己滿意的MVC.於是,在cnblog的洞庭夕照大大的MVC5網站開發實踐的幫助下,開始了MVC之路 再次感謝洞庭夕照大大,框架就直接按洞庭夕照大大的來了.. 專案名字就叫FantasyCMS好了.取自FINAL FANTASY遊戲

Dubbo學習筆記(一)—— 建立一個簡單的Dubbo入門專案演示HelloWorld

一、Dubbo簡介1、dubbo是什麼?▶ 一個分散式服務框架▶ 一個RPC遠端服務呼叫方案▶ 一個SOA服務治理方案2、dubbo架構圖3、節點說明Provider:暴露服務的服務提供方Consumer:呼叫遠端服務的服務消費方Registry:發現並註冊服務的服務註冊中心

SpringBoot2.x入門:快速建立一個SpringBoot應用

## 前提 這篇文章是《SpringBoot2.x入門》專輯的**第2篇**文章,使用的`SpringBoot`版本為`2.3.1.RELEASE`,`JDK`版本為`1.8`。 常規的套路會建議使用`Spring`官方提供的工具[Spring Initializr](https://start.spri

建立一個簡單的springMVC+mybatis專案(一)

  這裡我們只是簡單介紹搭建一個springMVC+mybatis專案的基本操作,不做過多的理論介紹 首先,建立一個專案,引入相應的java包 點選next,直到一下頁面,勾選建立通用的web.xml後點擊finish完成專案建立 匯入springMVC web專案的相關jar包

使用Gradle管理專案建立一個springboot專案

xl_echo編輯整理,歡迎轉載,轉載請宣告文章來源。更多IT、程式設計案例、資料請聯絡QQ:1280023003 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 使用gradle管理專案和maven管理專案最大的區別在於它的依賴配置,如果不熟

Spring Boot (基礎篇):建立一個簡單的SpringBoot專案

Spring Boot建立   首先IDEA新建一個專案,File-New-Project-Spring Initializr,然後Next,如下圖: 填寫專案資訊: 填寫專案使用到的技術,上面的SpringBoot版本建議選擇最新的穩定版,下面勾選上Web就可

使用Idea建立ssm專案SpringMVC+Spring+MyBatis+Maven整合

                        1.建立基本專案