Java整理17

1、Annotation

复制代码
基于注解管理bean
	使用注解实现自动装配,格式:@注解名称(属性=属性值)
	(1)引入依赖
	(2)开启组件扫描
		在bean.xml中								
		<context:component-scan base-package="com.atgui"></context>
		base-package="包路径":扫描指定包和子包下的所有类,若有注解,则该类型装配到容器中
	(3)使用注解定义bean
	(4)依赖注入
@Component应用于任何层次
@Repositry		Dao层
@Service		Service层
@Controller		控制层
属性注入
	方法一:@Autowired		根据类型装配
		@Autowired			根据类型找到对应对象完成注入
		private UserService userService
	方法二:set注入
		生成对应set方法,然后上方写@Autowired
	方法三:构造方法注入
	方法四:形参上注入
		(@Autowired 参数列表)
	方法五:两个注解
		@Autowired
		@Qualifier(value="类名首字母小写")
@Resource注入
	默认根据根据名称装配byName,若指定name时使用属性名作为name,通过name找不到的话会自动启动通过类型byType装配。
在接口实现类上添加@Service(value=名称xx)
在属性上添加@Resource(name=名称xx)完成注入

2、全注解开发

复制代码
用配置类替换xml配置文件
定义类,类上添加@Configuration声明为配置类
添加@ComponentScan("包名")扫描包其子包
将引入xml文件改为加载配置类
原来:
	ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml")
改为:
	ApplicationContext context=new AnnotationConfigApplicationContext(SpringConfig.class)

3、其它

复制代码
获取calss对象的多种方式:
	(1)类名.class							Car.class
	(2)对象.getClass()						new Car().getClass()
	(3)class.forName("全路径_包名.类名")		class.forName("类最上面Package值.类名")
实例化
	=clazz.getDeclaredConstrctor().newInstance();		
获取所有构造:
	Constructor[] constructors=clazz.getConstructors();	获取所有public的构造方法
	Constructor[] constructors=clazz.getDeclaredConstructors();	获取所有包括私有的构造方法
指定有参构造创建对象:
	Constructor c1=clazz.getConstructor(参数类型.class,......)	有参构造public方法
	Constructor c2=clazz.getDeclaredConstructor(参数类型.class,......)	有参构造private方法
	c2.setAccessible(true);允许访问
获取属性:
	Field[] files=getFileds()				获取公有属性
	Field[] files=getDeclaredFileds()		获取所有属性包括私有属性
	for(Field field:files)
	{
		if(filed.getName.equals("name"))
		{
			field.setAccessible(true);
			field.set()
		}
	}
获取方法:
	Method[] m=clazz.getMethods();				公有方法
	Method[] m=clazz.getDeclaredMethods();		所有方法
执行指定方法:
	if(m.getName().equals.("待执行方法名"))
		m.invoke(实参)
相关推荐
曹轲恒1 小时前
Java中断
java·开发语言
xxxmine1 小时前
Java并发wait(timeout)
java
冰冰菜的扣jio1 小时前
Redis缓存问题——一致性问题、事务、持久化
java·spring·mybatis
施棠海2 小时前
监听与回调的三个demo
java·开发语言
時肆4852 小时前
C语言造轮子大赛:从零构建核心组件
c语言·开发语言
niucloud-admin2 小时前
web 端前端
前端
赴前尘2 小时前
golang 查看指定版本库所依赖库的版本
开发语言·后端·golang
de之梦-御风2 小时前
【C#.Net】C#开发的未来前景
开发语言·c#·.net
毕设源码-钟学长2 小时前
【开题答辩全过程】以 家政服务平台为例,包含答辩的问题和答案
java
知乎的哥廷根数学学派3 小时前
基于数据驱动的自适应正交小波基优化算法(Python)
开发语言·网络·人工智能·pytorch·python·深度学习·算法