spring-boot整合Mybatis如何部署在weblogic上

介绍


本文在参考了如何优雅的在weblogic上部署spring-boot的基础下使用springboot整合Mybatis部署在weblogic服务器上。

环境

开发工具:Eclipse
weblogic版本:10.3.6.0
weblogic-jdk:1.8.0_91

技术实现

  1. 创建Maven工程,在pom文件中加入

  4.0.0
  com.ws
  weblogic-test
  0.0.1-SNAPSHOT
  
  
    1.5.4.RELEASE
    UTF-8
  
  
        org.springframework.boot
        spring-boot-starter-parent
        1.5.4.RELEASE
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.boot
            spring-boot-starter-jdbc            
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.1.1
            
           
            com.github.pagehelper  
            pagehelper  
            4.2.0  
         
         
         
            com.alibaba
            druid
            1.0.25
        
        
            javax.servlet
            servlet-api
            2.5
            test
        
        
            org.springframework
            spring-messaging
        
        
            javax.servlet
            javax.servlet-api          
            provided
        
        
            org.springframework.boot
            spring-boot-legacy
            1.0.2.RELEASE
         
         
            org.springframework.boot
            spring-boot-starter-tomcat
            provided
        
    
    
        
              
                org.apache.maven.plugins
                maven-war-plugin
                
                    true
                    
                        
                            ${project.version}
                        
                        
                            true
                            lib/
                        
                    
                    
                        
                            ${project.basedir}/src/main/resources/static
                        
                        
                            ${project.basedir}/src/main/webapp
                        
                    
                    ${project.artifactId}
                
            

            
                org.springframework.boot
                spring-boot-maven-plugin
                ${spring.boot.version}
                
                    BOOT
                
                
                    
                        
                            repackage
                        
                    
                
            
            
            
                maven-compiler-plugin
                
                    1.6
                    1.6
                
            
        
    

2.创建springboot入口类,配置类和测试类

@SpringBootApplication
@MapperScan("com.ws.mapper")
public class WeblogicTestApplication extends SpringBootServletInitializer implements WebApplicationInitializer{
    public static void main(String[] args) {
        SpringApplication.run(WeblogicTestApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(WeblogicTestApplication.class);
    }

配置文件

server.port=8888
logging.level.=INFO
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.connection-timeout=5000

spring.resources.static-locations=classpath:static/,file:static/

#spring.devtools.restart.enabled: true

mybatis.configuration.mapUnderscoreToCamelCase=true
mybatis.type-aliases-package=com.df.bean

spring.dataSource.primaryDataSource.type=com.alibaba.druid.pool.DruidDataSource
spring.dataSource.primaryDataSource.url=jdbc:oracle:thin:@10.2.1.242:1521/eaidb
spring.dataSource.primaryDataSource.username=cheryeai_osbmngt
spring.dataSource.primaryDataSource.password=cheryDBeai123
spring.dataSource.primaryDataSource.driverClassName = oracle.jdbc.driver.OracleDriver
spring.dataSource.primaryDataSource.initialSize = 5
spring.dataSource.primaryDataSource.minIdle = 5
spring.dataSource.primaryDataSource.maxActive = 15
spring.dataSource.primaryDataSource.maxWait = 60000
spring.dataSource.primaryDataSource.timeBetweenEvictionRunsMillis = 60000
spring.dataSource.primaryDataSource.minEvictableIdleTimeMillis = 300000
spring.dataSource.primaryDataSource.validationQuery = SELECT 1 FROM DUAL
spring.dataSource.primaryDataSource.testWhileIdle = true
spring.dataSource.primaryDataSource.testOnBorrow = true
spring.dataSource.primaryDataSource.testOnReturn = true

配置数据源

@Component
@ConfigurationProperties(prefix = "spring.dataSource.primaryDataSource")
public class DuridBeans {
    private String type;

    private String url;

    private String username;

    private String password;

    private String driverClassName;

    private Integer initialSize;

    private Integer minIdle;

    private Integer maxActive;

    private Integer maxWait;

    private Integer timeBetweenEvictionRunsMillis;

    private Integer minEvictableIdleTimeMillis;

    private String validationQuery;

    private Boolean testWhileIdle;

    private Boolean testOnBorrow;

    private Boolean testOnReturn;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getDriverClassName() {
        return driverClassName;
    }

    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }

    public Integer getInitialSize() {
        return initialSize;
    }

    public void setInitialSize(Integer initialSize) {
        this.initialSize = initialSize;
    }

    public Integer getMinIdle() {
        return minIdle;
    }

    public void setMinIdle(Integer minIdle) {
        this.minIdle = minIdle;
    }

    public Integer getMaxActive() {
        return maxActive;
    }

    public void setMaxActive(Integer maxActive) {
        this.maxActive = maxActive;
    }

    public Integer getMaxWait() {
        return maxWait;
    }

    public void setMaxWait(Integer maxWait) {
        this.maxWait = maxWait;
    }

    public Integer getTimeBetweenEvictionRunsMillis() {
        return timeBetweenEvictionRunsMillis;
    }

    public void setTimeBetweenEvictionRunsMillis(Integer timeBetweenEvictionRunsMillis) {
        this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
    }

    public Integer getMinEvictableIdleTimeMillis() {
        return minEvictableIdleTimeMillis;
    }

    public void setMinEvictableIdleTimeMillis(Integer minEvictableIdleTimeMillis) {
        this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
    }

    public String getValidationQuery() {
        return validationQuery;
    }

    public void setValidationQuery(String validationQuery) {
        this.validationQuery = validationQuery;
    }

    public Boolean getTestWhileIdle() {
        return testWhileIdle;
    }

    public void setTestWhileIdle(Boolean testWhileIdle) {
        this.testWhileIdle = testWhileIdle;
    }

    public Boolean getTestOnBorrow() {
        return testOnBorrow;
    }

    public void setTestOnBorrow(Boolean testOnBorrow) {
        this.testOnBorrow = testOnBorrow;
    }

    public Boolean getTestOnReturn() {
        return testOnReturn;
    }

    public void setTestOnReturn(Boolean testOnReturn) {
        this.testOnReturn = testOnReturn;
    }

}
@Configuration
public class DuridSource {
     @Autowired
     private DuridBeans druidPrimaryDataSourceConfigProperties;
     @Bean(name="dataSource")
     @Primary
     public DataSource primaryDataSource (){
        DruidDataSource datasource = new DruidDataSource();

        datasource.setUrl(this.druidPrimaryDataSourceConfigProperties.getUrl());
        datasource.setUsername(this.druidPrimaryDataSourceConfigProperties.getUsername());
        datasource.setPassword(this.druidPrimaryDataSourceConfigProperties.getPassword());
        datasource.setDriverClassName(this.druidPrimaryDataSourceConfigProperties.getDriverClassName());


        datasource.setInitialSize(this.druidPrimaryDataSourceConfigProperties.getInitialSize());
        datasource.setMinIdle(this.druidPrimaryDataSourceConfigProperties.getMinIdle());
        datasource.setMaxActive(this.druidPrimaryDataSourceConfigProperties.getMaxActive());
        datasource.setMaxWait(this.druidPrimaryDataSourceConfigProperties.getMaxWait());
        datasource.setTimeBetweenEvictionRunsMillis(this.druidPrimaryDataSourceConfigProperties.getTimeBetweenEvictionRunsMillis());
        datasource.setMinEvictableIdleTimeMillis(this.druidPrimaryDataSourceConfigProperties.getMinEvictableIdleTimeMillis());
        datasource.setValidationQuery(this.druidPrimaryDataSourceConfigProperties.getValidationQuery());
        datasource.setTestWhileIdle(this.druidPrimaryDataSourceConfigProperties.getTestWhileIdle());
        datasource.setTestOnBorrow(this.druidPrimaryDataSourceConfigProperties.getTestOnBorrow());
        datasource.setTestOnReturn(this.druidPrimaryDataSourceConfigProperties.getTestOnReturn());

        return datasource;
    }

}
@Configuration
public class MybatisConfig {
    @Autowired 
    private DataSource dataSource;   //Durid数据源
    
    @Bean
    public SqlSessionFactoryBean createSqlSessionFactoryBean() throws Exception {
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); 
    sqlSessionFactoryBean.setDataSource(dataSource); 
    org.apache.ibatis.session.Configuration config=new org.apache.ibatis.session.Configuration();
    config.setMapUnderscoreToCamelCase(true);    //设置驼峰命名
    sqlSessionFactoryBean.setConfiguration(config);
    sqlSessionFactoryBean.setTypeAliasesPackage("com.ws.bean"); 
    Interceptor[] plugins =  new Interceptor[]{pageHelper()};
    sqlSessionFactoryBean.setPlugins(plugins);
    return sqlSessionFactoryBean; 
    }
    
    /**
     * Mybatis分页插件 
     */
    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }
public interface UserMapper {
    @Select({"SELECT * FROM USER_TEST"})
    List getUserInfo();
}
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public List getUserInfoSer(){
        return userMapper.getUserInfo();        
    }
}
@RestController
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping(value="/test" ,method= RequestMethod.GET)
    public String testGetUserInfo() {
        User user=userService.getUserInfoSer().get(0);
        return "我是"+user.getUserName()+"今年"+user.getUserAge()+"岁了!";
    }
}

说明:关于Durid数据源的配置这里就不详细说明了,springboot默认使用tomcat的数据源,在使用tomcat数据源部署的时候报错(NO supported Datasource type found),然后就给换成durid数据源。

3.创建web.xml和weblogic.xml



    
        contextConfigLocation
        com.ws.WeblogicTestApplication
    
    
        org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
    
    
        appServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextAttribute
            org.springframework.web.context.WebApplicationContext.ROOT
        
        1
    
    
        appServlet
        /
    

 
    /testweblogic
    
                  
            org.slf4j.*
            org.springframework.*
        
    

说明:关于在eclipse中创建web.xml可以参考解决新建maven工程没有web.xml的问题
4.打包部署
先在pom.xml中加入war。在eclipse中可以右击pom.xml->Run As->Maven instal 将项目打成war包

5.部署测试
在weblogic上部署web应用可以参考weblogic部署web项目(war包)。
然后在浏览器地址栏访问项目的测试路径。

6.总结
到这里我们已经成功将 springboot和mybatis整合并部署到weblogic上。

你可能感兴趣的:(mybatis,springboot,weblogic,oracle,java)