• Spring----Spring Boot Rest的使用方法


    1.下载Google浏览器并安装插件

    转载:

    http://chromecj.com/web-development/2015-03/401/download.html

    打开Google浏览器-》点击右上角-》更多工具-》扩展程序

    然后把文件复制进来

    打开右上角

    完成

    2.RestMain.java

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 测试RestFul
     *
     */
    @SpringBootApplication //等同于 @Configuration @EnableAutoConfiguration @ComponentScan
    public class RestMain 
    {
        public static void main( String[] args )
        {
            SpringApplication.run(RestMain.class, args);  
        }   
    }

    3.BeanConfig.java

    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.EnableAspectJAutoProxy;
    
    @Configuration
    @ComponentScan(basePackages="com.maven") //这是扫描的包的主路径
    @EnableAspectJAutoProxy   //AOP代理自动配置
    public class BeanConfig {
    //    @Bean
    //    public AppService service(){
    //        return new AppService();
    //    }
        
    //    @Bean
    //    public User user(){
    //        return new User();
    //    }
        
    //    @Bean
    //    public ContactBook contactBook(){
    //        return new ContactBook();
    //    }
        
    //    @Bean
    //    public AspectConcern aspectConcern(){
    //        return new AspectConcern();
    //    }
    }

    4.WebConfig.java

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.ViewResolver;
    import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    
    @Configuration
    @EnableWebMvc
    public class WebConfig extends WebMvcConfigurerAdapter{
        /**
         * 这里的@bean()需要赋值一个名称,否则会抛出没有创建这个bean的异常
         * 
         */
        @Bean("defaultServletHandlerMapping")
        public ViewResolver viewResolver(){
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("WEB-INF/views/");
            resolver.setSuffix(".jsp");
            resolver.setExposeContextBeansAsAttributes(true);
            return resolver;
        }
    
        @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }
        
    }

    5.LoginController.java

    import java.io.IOException;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    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.ResponseBody;
    
    import com.maven.demo.model.User;
    
    @Controller
    public class LoginController {
        @RequestMapping(value="/login",method=RequestMethod.GET)
        @ResponseBody
        public String getting(HttpServletResponse response) throws IOException{
            //设置成功时的响应码
            response.setStatus(606);
            //请求重定向
            response.sendRedirect("http://www.baidu.com");
            return "<div>Hello</div>";
        }    
        
        /**
         * @param user      从体中获取的json数据(体中的数据与User里面的属性一一对应)
         * @param pathValue 从url地址中获取的路径名称
         * @param name      从url地址中获取的对应的参数的值(defaultValue表示默认值)
         * @param id
         * @return
         */
        @RequestMapping(value="/login/{pathValue}",method=RequestMethod.POST)
        @ResponseBody
        public User posting(@RequestBody User user,@PathVariable String pathValue,@RequestParam(defaultValue="tianheng")String name,int id){        
            return user;
        }
    }

    6.User.java

    import java.sql.Date;
    import java.util.List;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.OneToMany;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    /**
     * 用户实体类
     *
     */
    @Component
    //@ConfigurationProperties(prefix="my",locations = "classpath:application.yml")
    //@ConfigurationProperties(prefix="my") //配合测试类@SpringBootTest()使用
    //@Entity
    //@NamedQueries({ 
    //@NamedQuery(name = "User.findByNameWithNamedQuery",
    //query = "select c from User c where c.name = ?1")})
    public class User {
        //@Id
        private int id;
        private String name;
        private char sex;
        private Date birthDate;
        private int height;
        //@OneToMany(mappedBy="myUser")
        private List<ContactBook> contact;
        
        public User(){}
        
        public User(int id ,String name,char sex,Date birthDate,int height,List<ContactBook> contact){
            this.id = id;
            this.name = name;
            this.sex = sex;
            this.birthDate = birthDate;
            this.height = height;
            this.contact = contact;
        }
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public Date getBirthDate() {
            return birthDate;
        }
        public void setBirthDate(Date birthDate) {
            this.birthDate = birthDate;
        }
        public List<ContactBook> getContact() {
            return contact;
        }
        public void setContact(List<ContactBook> contact) {
            this.contact = contact;
        }
        public void setName(String name) {
            this.name = name;
        }
        public char getSex() {
            return sex;
        }
        public void setSex(char sex) {
            this.sex = sex;
        }
        public int getHeight() {
            return height;
        }
        public void setHeight(int height) {
            this.height = height;
        }
        
    }

    7.pom.xml

    <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>com.maven</groupId>
      <artifactId>demo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>demo</name>
      <url>http://maven.apache.org</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source> <!-- Java版本,不要在build path里面修改     -->
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.5</version>
          <scope>test</scope>
        </dependency>
        
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>4.3.7.RELEASE</version>
          </dependency>
        
        <dependency> 
                <groupId>org.aspectj</groupId> 
                <artifactId>aspectjweaver</artifactId> 
                <version>1.8.9</version> 
        </dependency>
        
        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>1.4.0.RELEASE</version>
        </dependency>
        
        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <version>1.4.0.RELEASE</version>
        </dependency>
    
    
        <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-configuration-processor</artifactId>  
                <version>1.4.0.RELEASE</version>
                <optional>true</optional>  
        </dependency> 
        
        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>1.4.0.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.4.0.RELEASE</version>
        </dependency>
        
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.192</version>
        </dependency>
    
      </dependencies>
      
      <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
       </build>
      
    </project>

    8.运行RestMain.java文件

    9.

    结果:

  • 相关阅读:
    Selenium+Java自动化之如何优雅绕过验证码
    Java替换中使用正则表达式实现中间模糊匹配
    【转】Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍
    【转】安全测试===如何查看浏览器保存的密码
    JMeter 中_time 函数的使用(时间戳、当前时间)
    TCP拆包粘包之分隔符解码器
    TCP粘包/拆包问题
    Netty 入门示例
    JDK AIO编程
    JDK NIO编程
  • 原文地址:https://www.cnblogs.com/tianhengblogs/p/6774395.html
Copyright © 2020-2023  润新知