Springboot 4——标准开发方式&javaconfig&xmlconfig

根据编程不良人视频整理

标准开发方式

如果dayApplication.java没有放在包下,而是直接放在java文件夹下,那么,dayApplication.java中的@EnableAutoConfiguration @ComponentScan这两个注解会将项目中的jar包中的每一个类都进行扫描,从而进行自动配置,这样会对springboot程序造成非常大的效率影响。
官方文档建议Application.java放在所有的子包之外,比如放在controller、service(业务包)、dao、customer等包之外。但不代表可以放在默认包java文件夹。

注解@SpringBootApplication整合了@EnableAutoConfiguration @ComponentScan

application.yml

server:
  port: 8989
  servlet:
    context-path: /springboot_day

application.properties

server.port=8989
server.servlet.context-path=/springboot_day

在springboot中提供了两种方式去配置class,即通过springboot去管理自定义java class。
springboot中给我们提供了两种方式
1.java config
java配置(通过java 配置的方式进行自定义java对象的管理)(官方更推荐这种)
两种方式:
A.@Configuration注解:类似于@Component注解。特点:可以针对于多个自定义对象进行管理
B.@import注解:将直接导入一个配置类。所谓直接导入一个配置类指的是:加入一开始User类没有交给工厂管理,即没写@Configuration注解,这样的话在HelloController.java中注入此对象一定会报错,因为@Autowired要求工厂中必须存在。此时可以在HelloController.java中添加@Import(User.class)注解,可直接通过这个注解导入当前的类,导入之后就可以用了。 特点:导入指定对象,@import一次性在哪用的时候,只用一次,用这个比较好。
(推荐使用@Configuration)

所谓java配置就是纯通过java代码基于注解的方式进行配置

在com.estella包中新建包entity->新建java类User.java
自动生成构造方法:右键->Generate->构造方法等

除了构造所有变量的构造方法,也要构造无参的构造方法selectnone
自动生成getset方法
自动生成toString方法
代码如下:

public class User {
    private String id;
    private String name;

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                '}';
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public User() {
    }

    public User(String id, String name) {
        this.id = id;
        this.name = name;
    }
}

如果日后想要将这个对象交给工厂管理,添加注解@Configuration
注解@Configuration继承了注解@Component,它也是做组件对象创建
所以在对象上添加@Configuration
通过@Configuration注解将对象创建后,可以在HelloController.java中对对象进行注入,并加上注解@Autowired
此时查看是否能对这个对象进行一个管理

在管理多个对象时,新建一个configs包->新建BeansConfig.java,在这个类上添加注释@Configuration,定义一个返回值是User类型的方法,然后在这里写当前方法的实例。在此方法上添加注释@Bean

@Configuration
public class BeansConfig {
    @Bean
    public User getUser(){
        return new User();
    }
}

@Bean注释:将当前返回值作为工厂中一个对象进行管理。这种方式最大的好处:日后类中不仅可以管理User,也可以管理其他类,可以把日后想要管理的对象都放在这里。

2.xml方式配置
通过xml配置去管理java对象

如果User对象想基于xml的方式来管理,不想基于Bean的方式来管理,该如何做?

先将configs包删除,User类上也无@Configuration注解,此时工厂中没有user对象,运行程序,则报错。(如果只删除config包,但User类上有@Configuration注解,则程序不会报错,运行成功)
此时,可以通过xml的方式进行配置。

main->resources->新建XML Configuration File->spring
Config->命名为spring.xml

通过bean标签的方式,命名为user,class为User

<!--交给工厂管理-->
<bean id="user" class="com.estella.entity.User"></bean>

如何将配置告诉Springboot?

可以在入口类dayApplication.java中添加注解@ImportResource(“spring.xml”)
此时启动程序,运行成功。
需要注意:不推荐使用xml方式

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值