Spring Boot

1. Spring 5.X应用零配置开发
Spring 框架从5.x版本推荐使用注解形式来对java应用程序进行开发与配置,并且可以完全替代原始的XML+注解形式的开发,在使用注解形式进行项目开发与环境配置时,Spring框架提供了针对环境配置与业务bean开发相关注解。

	注解
		声明Bean注解
			@Component: 组件没有明确规定其角色,作用在类级别上声明当前类为一个业务组件,被Spring Ioc容器维护 。
			@Service: 在业务逻辑层(Service 层)类级别进行声明 。
			@Repository: 在数据访问层(dao 层) 类级别声明 。
			@Controller: 在展现层(MVC) 使用,标注当前类为一个控制器。
		注入Bean注解
			@AutoWired: Spring官方提供注解 。
			@Inject: JSR-330提供注解(标准制定方) 。
			@Resource: JSR-250提供注解。
			注意:在Set方法或属性上声明,一般情况下通用一般开发中更习惯声明在属性上。
		Spring5.x中配置与获取Bean注解
			@Configuration: 作用与类上,将当前类声明为一个配置类,相当于一个xml配置文件。
			@ComponentScan: 自动扫描指定包下标注有。
			@Repository,@Service,@Controller @Component: 注解的类并由Ioc容器进行实例化和维护 。
			@Bean: 作用于方法上,相当于xml 文件中<bean> 声明当前方法返回值为一个bean 。
			@Value: 获取properties文件指定key,value值。
  • IOC中Bean的实例化与获取

     通过实例化AnnotationConfigApplicationContext类,接收配置参数类IocConfig,并获取UserService Bean实现方法调用。
     	1.在pom.xml中添加坐标相关配置
     		<dependencies>
     			<!-- spring的依赖坐标 -->
     			<dependency>
     				<groupId>org.springframework</groupId>
     				<artifactId>spring-context</artifactId>
     				<version>5.2.4.RELEASE</version>
     			</dependency>
     		</dependencies>
     		<build>
     			<plugins>
     				<!-- 指定Maven编译的JDK版本和编码 -->
     				<plugin>
     					<groupId>org.apache.maven.plugins</groupId>
     					<artifactId>maven-compiler-plugin</artifactId>
     					<version>2.3.2</version>
     					<configuration>
       						<!-- 源代码使用的JDK版本 -->
       						<source>11</source>
       						<!-- 需要生成的目标class文件的编译版本 -->
       						<target>11</target>
       						<!-- 字符集编码 -->
       						<encoding>utf-8</encoding>
     					</configuration>
     				</plugin>
     			</plugins>
     		</build>
     	2.创建Bean对象
     		UserDao.java和UserService.java
     	3.创建IocConfig配置类
     		//将当前类声明为一个配置类 
     		@Configuration 
     		//设置扫描包范围 
     		@ComponentScan("com.yjxxt.springboot") 
     		public class IocConfig { }
     	4.创建启动类执行测试
     		public class Starter { 
     			public static void main(String[] args) { 
     				//基于Java的配置类加载Spring的应用上下文 
     				AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(IocConfig.class); 
     				//获取指定的Bean对象 
     				UserService userService = ac.getBean(UserService.class); 
     				//调用Bean对象的方法 
     				userService.test(); 
     			} 
     		}
    
  • @Bean注解使用

     使用@Bean注解声明在方法(注意:方法名一般为bean对象名称)级别用于返回实例化的Bean对象。
     	1.创建Bean对象
     		AccountDao.java
     	2.修改IocConfig配置类
     		@Configuration 
     		@ComponentScan("com.yjxxt.springboot") 
     		public class IocConfig02 { 
     			//返回实例化的单例Bean对象 
     			@Bean 
     			public AccountDao accountDao(){ 
     				return new AccountDao(); 
     			} 
     		}
     	3.创建启动类并执行测试
     		public class Starter02 { 
     			public static void main(String[] args) { 
     				AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(IocConfig.class); 
     				//判断IocConfig对象是否是单例 
     				System.out.println(ac.isSingleton("IocConfig")); 
     				//获取IocConfig对象 
     				IocConfig iocConfig = ac.getBean(IocConfig.class); 
     				//获取AccountDao对象 
     				AccountDao accountDao01 = iocConfig.accountDao(); 
     				AccountDao accountDao02 = iocConfig.accountDao(); 
     				System.out.println(accountDao01 + "," + accountDao02); 
     				accountDao01.test(); 
     			} 
     		}
    
  • 读取外部配置文件

     通过@PropertySource注解声明到类级别来指定读取相关配置。
     	1.准备配置文件
     		 user.properties
     		 	# user.properties 
     		 	user.userName=admin 
     		 	user.password=admin
     		 jdbc.properties
     		 	# jdbc.properties 
     		 	jdbc.driver=com.mysql.jdbc.Driver 
     		 	jdbc.url=jdbc:mysql://127.0.0.1:3306/hr?
     		 	useUnicode=true&characterEncoding=utf8 jdbc.username=root 
     		 	jdbc.password=root
     	2.@PropertySource加载配置文件
     		 properties配置文件
     		 	@Configuration 
     		 	@ComponentScan("com.yjxxt") 
     		 	@PropertySource(value = {"classpath:jdbc.properties","classpath:user.properties"}) 
     		 	public class IocConfig03 {
     		 		@Value("${jdbc.driver}") 
     		 		private String driver; 
     		 		@Value("${jdbc.url}") 
     		 		private String url; 
     		 		@Value("${jdbc.username}") 
     		 		private String userName; 
     		 		@Value("${jdbc.password}") 
     		 		private String password; 
     		 		// 控制台打印属性值信息 
     		 		public void showConfigInfo(){ 
     		 			System.out.println("driver:" + driver + ",url:" + url); 
     		 			System.out.println("userName:" + userName + ",password:" + password); 
     		 		} 
     		 	}
     	3.其他Bean对象获取properties文件内容
     		@Service 
     		public class UserService { 
     			@Resource 
     			private UserDao userDao; 
     			@Value("${user.userName}") 
     			private String userName; 
     			@Value("${user.password}") 
     			private String password; 
     			public void test(){ 
     				System.out.println("UserServ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值