您的位置:首页 > 编程语言 > Java开发

使用Springboot快速搭建项目

2017-01-25 13:27 821 查看

1. 项目入口

package com.kyx.app;

import com.kyx.app.bean.TestSpringSource;
import com.kyx.app.spring.conf.AppConf;
import com.zaxxer.hikari.HikariDataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
@ServletComponentScan
@MapperScan(basePackages = "com.kyx.app.mybatis.mapper")
public class DemoApplication {

private Logger logger = LoggerFactory.getLogger(DemoApplication.class);

@Autowired
private AppConf appConf;

//  @Value("${mybatis.mapperLocations}")
//  private String mapperLocations;
//  @Value("${mybatis.typeAliasPackage}")
//  private String typeAliasPackage;

//  @Bean
//  public FilterRegistrationBean get() {
//      SessionFilter sessionFilter = new SessionFilter();
//      return new FilterRegistrationBean(sessionFilter);
//  }
//  @Bean
//  public ServletRegistrationBean servletRegistrationBean(){
//      return new ServletRegistrationBean(new MyServlet(),"/lottery/go");
//  }
//  @Bean
//  public ServletListenerRegistrationBean servletListenerRegistrationBean(){
//      return new ServletListenerRegistrationBean(new MyServletListener());
//  }
//  @Bean
//  public Filter sessionFilter(){
//      SessionFilter sessionFilter = new SessionFilter();
//      return  sessionFilter;
//  }
@Bean
@ConfigurationProperties(prefix = "spring.dataSource")
public DataSource dataSources(){
return new HikariDataSource();
}

//  @Bean
//  public SqlSessionFactory sqlSessionFactory() throws Exception{
//          SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
//          sessionFactory.setDataSource(dataSource());
//          // 使用xml,必须
////            logger.info("=======>application.properties: {}",mapperLocations);
////            logger.info("=======>application.properties: {}",typeAliasPackage);
//
//          sessionFactory.setTypeAliasesPackage(appConf.getTypeAliasPackage());
//          sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(appConf.getMapperLocations()));
//          return sessionFactory.getObject();
//  }

//  @Bean
//  public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
//      SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
//      sessionFactory.setDataSource(dataSource);
//      // 使用xml,必须
////            logger.info("=======>application.properties: {}",mapperLocations);
////            logger.info("=======>application.properties: {}",typeAliasPackage);
//
//      sessionFactory.setTypeAliasesPackage(appConf.getTypeAliasPackage());
//      sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(appConf.getMapperLocations()));
//      return sessionFactory.getObject();
//  }
//
//  @Bean
//  public SqlSessionDaoSupport sqlSessionDaoSupport(SqlSessionFactory sqlSessionFactory){
//      System.out.println(sqlSessionFactory);
//      SqlSessionDaoSupport sqlSessionDaoSupport = new SqlSessionDaoSupport() {
//          @Override
//          public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
//              super.setSqlSessionFactory(sqlSessionFactory);
//          }
//      };
//      return sqlSessionDaoSupport;
//  }

@Bean
public TestSpringSource setVersion(){
TestSpringSource test = new TestSpringSource();
test.setVersion("1.0");
return test;
}
public static void main(String[] args) {
//System.setProperty("spring.devtools.restart.enabled", "true");
//          TestSpringSource test = new TestSpringSource();
//          test.setVersion("1.0");
//SpringApplication.run("classpath:applicationContext.xml", args);
SpringApplication.run(DemoApplication.class, args);
}
}


1. 所有需要项目启动就加载的东西需要在@Configuration(@SpringBootApplication

继承了它)的类中实例化,如filter、listener等。

2. 实例化方式:

- @Bean 手动实例化

- @ServletComponentScan 和@WebFilter、 @WebListener、 @WebServlet

2. @RestController使用,使得URL更加restful

package com.kyx.config.api;

import com.kyx.config.domain.DeviceConfig;
import com.kyx.config.domain.DeviceConfigExample;
import com.kyx.config.repository.mapper.DeviceConfigMapper;
import com.kyx.config.service.DeviceConfigService;
import com.kyx.config.support.view.Ok;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

/**
* Created by XuHe on 17/1/9.
*/
@RestController
@RequestMapping("/device")
public class DeviceConfigController {
@Autowired
private DeviceConfigMapper mapper;

@Autowired
private DeviceConfigService service;

@RequestMapping(path = "sn/{sn}" , method = RequestMethod.GET)
public Ok getBySN(@PathVariable String sn){
return new Ok(service.getBySN(sn));
}

@RequestMapping(path = "sn/{sn}" , method = RequestMethod.PUT)
public String update(){
return "ok";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springboot