学习Spring boot一些基础和关于Spring boot一些常用注解的介绍总结

Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它提供了一组常用的注解,用于简化开发过程和配置管理。以下是一些常用的Spring Boot注解的介绍和基础知识:

  1. @SpringBootApplication:这是一个组合注解,用于标注主应用程序类。它包含了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解。

    主程序项目文件结构一般为:

                            src/main/java

                                            com.example.demo

                                                    DemoApplication.java

    代码块注入如下:

  2. @SpringBootApplication
    public class Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }

    注:主程序不能随意删除,否则run运行时会进行报错。


  3. @RestController:这个注解用于标注控制器类,表示该类中的所有方法都以JSON格式返回响应。@RestController注解写于Controller层

    @RequestMapping:这个注解用于映射URL路径到方法上。可以用于类级别和方法级别,用于处理HTTP请求。

  4. 控制层项目文件结构一般为:

     src/main/java

         com.example.demo

                DemoApplication.java

                controller

                    UserController.java

    代码块注入如下:

  5. @RestController
    @RequestMapping("/users")
    public class UserController {}

  6. @Autowired:这个注解用于自动注入依赖对象。它可以用于构造方法、属性和方法上。

    代码注入示例:

    package com.example.demo.dao;
    
    import com.example.demo.model.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public class UserRepository {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public List<User> findAll() {
            String sql = "SELECT * FROM users";
            return jdbcTemplate.query(sql, (rs, rowNum) -> {
                User user = new User();
                user.setId(rs.getLong("id"));
                user.setName(rs.getString("name"));
                user.setEmail(rs.getString("email"));
                return user;
            });
        }
    
        public void save(User user) {
            String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
            jdbcTemplate.update(sql, user.getName(), user.getEmail());
        }
    
        public void delete(Long id) {
            String sql = "DELETE FROM users WHERE id = ?";
            jdbcTemplate.update(sql, id);
        }
    }
    
    package com.example.demo.dao;
    
    import com.example.demo.model.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public class UserRepository {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public List<User> findAll() {
            String sql = "SELECT * FROM users";
            return jdbcTemplate.query(sql, (rs, rowNum) -> {
                User user = new User();
                user.setId(rs.getLong("id"));
                user.setName(rs.getString("name"));
                user.setEmail(rs.getString("email"));
                return user;
            });
        }
    
        public void save(User user) {
            String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
            jdbcTemplate.update(sql, user.getName(), user.getEmail());
        }
    
        public void delete(Long id) {
            String sql = "DELETE FROM users WHERE id = ?";
            jdbcTemplate.update(sql, id);
        }
    }
    

  7. 在Spring Boot中,使用@Service注解标注的类会被自动扫描并注册为Spring的Bean。它通常用于标识业务逻辑的实现类。

    下面是一个使用@Service注解的示例:

    @Service
    public class UserService {
    
        public void createUser(User user) {
            // 业务逻辑实现代码
        }
    
        public User getUserById(long id) {
            // 业务逻辑实现代码
            return null;
        }
    
        // 其他业务方法...
    }
    

    在这个示例中,UserService类被标注为@Service,表示它是一个服务层的组件。可以在该类中实现一些与用户相关的业务逻辑,例如创建用户、获取用户信息等。

    通过将@Service注解添加到类上,Spring Boot会自动将该类实例化并注册为Spring的Bean,这样我们就可以在其他组件中使用UserService

    需要注意的是,为了让Spring Boot能够自动扫描到@Service注解,需要将该注解所在的包路径包含在@ComponentScan注解中。如果你的@Service注解在根包下或者与主程序类在同一个包下,那么无需额外配置。否则,你需要在主程序类上加上@ComponentScan注解,并指定要扫描的包路径。

 


      8. 在Spring Boot中,使用@Data注解与普通的Java应用程序中使用方式相同。只需在类上添加@Data注解即可。

        在Spring Boot应用程序中,通常会使用@Data注解来简化实体类的定义,以及避免手动编写Getter和Setter方法、toString方法、equals方法和hashCode方法等。

下面是一个使用@Data注解的示例:

@Data
@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private int age;
}

上述代码中,使用@Data注解标注了一个User类。这个类同时使用了其他的JPA注解,如@Entity、@Table、@Id、@GeneratedValue和@Column等,用于定义实体类和数据库表之间的映射关系。

使用@Data注解后,编译时会自动生成Getter和Setter方法、toString方法、equals方法和hashCode方法,避免了手动编写这些方法的繁琐工作。

需要注意的是,使用@Data注解会自动生成所有属性的Getter和Setter方法,如果不希望某个属性被访问或修改,可以使用其他访问控制修饰符(如private)来限制访问。

 最后这些注解只是Spring Boot提供的一部分,还有许多其他的注解可以用于不同的场景和功能。熟悉这些注解可以帮助开发者更好地使用和理解Spring Boot框架。知识靠的是实践慢慢积累的,所以学习不是一下子的事情,需要我们循序渐进,慢慢吸收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值